中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python爬蟲取圖片詳解,

發布時間:2020-07-11 13:17:31 來源:網絡 閱讀:1174 作者:眉間雪 欄目:系統運維

接下來會依次準備三個案例(如果要把每一個點都精通的話大約要花費一個月,我說的精通是指自己將代碼不用查資料寫出來,以下暫未整理):
import requests,threading#多線程處理與控制
from lxml import etree
from bs4 import BeautifulSoup
#獲取源碼
def get_html(url):
url='http://www.doutula.com/?qqdrsign=01495'
#獲取網絡地址,但這個地方寫死了,怎么辦呢,因為我們還沒有做多頁
headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36'}
#上一步是模擬瀏覽器信息,固定格式,可記下來
request=requests.get(url=url,headers=headers)#對網址發送一個get請求
response=request.content#獲取源碼,比test稍微好一點
#print(response)
return response
#接下來是獲取外頁,即圖片自身的源碼
def get_img_html(html):
soup=BeautifulSoup(html,'lxml')#解析網頁方式,自帶html.pparser
all_a=soup.findall('a',class='list-group-item randomlist')#class是關鍵字所以此處加
for i in all_a:
print(i)#i是指<a class="list-group-item random_list" href="http://www.doutula.com/article/detail/6001799">
img_html=get_html(i['href'])#是用來獲取超鏈接這一部分源碼
print(img_html)
#http://www.doutula.com/article/list/?page=2
a=get_html(1)
get_img_html(a)
好了,我們已經可以獲取一部分的源碼了,這樣,我們接下來的工作是開始做多頁

import requests,threading#多線程處理與控制
from lxml import etree
from bs4 import BeautifulSoup
#獲取源碼
def get_html(url):
#url='http://www.doutula.com/?qqdrsign=01495'#獲取網絡地址,但這個地方寫死了,怎么辦呢,因為我們還沒有做多頁
headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36'}
#上一步是模擬瀏覽器信息,固定格式,可記下來
request=requests.get(url=url,headers=headers)#對網址發送一個get請求
response=request.content#獲取源碼,比test稍微好一點
#print(response)
return response
#接下來是獲取外頁,即圖片自身的源碼
def get_img_html(html):
soup=BeautifulSoup(html,'lxml')#解析網頁方式,自帶html.pparser
all_a=soup.findall('a',class='list-group-item randomlist')#class是關鍵字所以此處加
for i in all_a:
print(i)#i是指<a class="list-group-item random_list" href="http://www.doutula.com/article/detail/6001799">
img_html=get_html(i['href'])#是用來獲取超鏈接這一部分源碼
print(img_html)
#http://www.doutula.com/article/list/?page=2
def main():
start_url='http://www.doutula.com/article/list/?page='
for i in range(1,10):
start_html=get_html(start_url.format(i))#將前十頁的頁數傳遞進來,來獲取前十頁源碼
get_img_html(start_html)#來獲取圖片所在的鏈接源碼

main()
最后是總的源碼:
import requests,threading#多線程處理與控制
from lxml import etree#解析方式,直接找到里面的內容
from bs4 import BeautifulSoup
#獲取源碼
def get_html(url):
#url='http://www.doutula.com/?qqdrsign=01495'#獲取網絡地址,但這個地方寫死了,怎么辦呢,因為我們還沒有做多頁
headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36'}
#上一步是模擬瀏覽器信息,固定格式,可記下來
request=requests.get(url=url,headers=headers)#對網址發送一個get請求
response=request.content#獲取源碼,比test稍微好一點
#print(response)
return response
#接下來是獲取外頁,即圖片自身的源碼
def get_img_html(html):
soup=BeautifulSoup(html,'lxml')#解析網頁方式,自帶html.pparser
all_a=soup.findall('a',class='list-group-item randomlist')#class是關鍵字所以此處加
for i in all_a:
#print(i)#i是指<a class="list-group-item random_list" href="http://www.doutula.com/article/detail/6001799">
img_html=get_html(i['href'])#是用來獲取超鏈接這一部分源碼
get_img(img_html)
#print(img_html)
#http://www.doutula.com/article/list/?page=2
#獲取圖片的url:
def get_img(html):soup=etree.HTML(html)#解析之前的初始化,自動修正代碼的
items=soup.xpath('//div[@class="artile_des"]')#@是用來選取屬性,找到相應盒子
br/>soup=etree.HTML(html)#解析之前的初始化,自動修正代碼的
items=soup.xpath('//div[@class="artile_des"]')#@是用來選取屬性,找到相應盒子
br/>imgurl_list=item.xpath('table/tbody/tr/td/a/img/@onerror')#onerror這個是所需要的屬性,很重要
#print(imgurl_list)
#start_save_img(imgurl_list)
#上處已找到圖片
#接下來是下載by多線程
x=1#設置命名
#拼接完整鏈接,文件open
def save_img(img_url):
global x #設置全局變量
x+=1
img_url=img_url.split('=')[-1][1:-2].replace('jp','jpg')
print("正在下載"+'http:'+img_url)
img_content=requests.get(img_url).content
with open('doutu/%s.jpg'% x,'wb') as f:
f.write(img_content)
print('已打印第%s張圖片'%x);

#打造多線程
def start_save_img(imgurl_list):
for i in imgurl_list:
print(i)
th=threading.Thread(target=save_img,args=(i,))
th.start()
def main():
start_url='http://www.doutula.com/article/list/?page='
for i in range(1,10):
start_html=get_html(start_url.format(i))#將前十頁的頁數傳遞進來,來獲取前十頁源碼
get_img_html(start_html)#來獲取圖片所在的鏈接源碼

if name=='main':
main()
未完待續,后期會有改進

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

岳普湖县| 天长市| 昭通市| 沅陵县| 高台县| 怀集县| 通州市| 乌兰县| 平江县| 离岛区| 安福县| 澄江县| 静海县| 龙泉市| 阿坝县| 贡觉县| 台南县| 图木舒克市| 抚松县| 阜阳市| 钟祥市| 老河口市| 景谷| 理塘县| 邵阳县| 濮阳市| 浦江县| 通化市| 阜康市| 巴东县| 蛟河市| 灵武市| 永福县| 怀柔区| 瓮安县| 汝阳县| 托里县| 奉化市| 沙坪坝区| 抚顺市| 金川县|