效果如下:
**如下:
import requests
import re
import os
headers =
defget_page
(num)
: page_list =
for i in
range(1
, num+1)
: url =
f''return page_list
defget_html
(url)
: r = requests.get(url, headers=headers)
html = r.text
return html
defparse_html
(html)
: pattern1 = re.
compile
(r'data-progressive.*?src="(.*?)"'
) pattern2 = re.
compile
(r''
) img_list = re.findall(pattern1, html)
title_list = re.findall(pattern2, html)
return img_list, title_list
defdownload
(path, img_list, title_list)
:for i in
range
(len
(img_list)):
img_url = img_list[i]
title = title_list[i]
img_url = img_url.replace(
'640'
,'1920'
).replace(
'480'
,'1080'
) pattern3 = re.
compile
(r'[()-/_]'
) title = re.sub(pattern3,
'', title)
print
(f'正在爬取: ')
# 將爬取失敗的刪除
if os.path.getsize(img_path)
<50:
os.remove(img_path)
if __name__ ==
'__main__'
: num =
20 keyword =
'必應桌布'
path =
'd://'
page_list = get_page(num)
for page in page_list:
html = get_html(page)
img_list, title_list = parse_html(html)
download(path, img_list, title_list)
這裡需要注意:requests.get(url, headers=headers).text
會有很多 html 轉義編碼的字元,比如:引號變為"
,會影響使用正則
解決方法:
正則中加入"
出現問題:
請求超時
設定請求超時時間,防止長時間停留在同乙個請求
] 由於連線方在一段時間後沒有正確答覆或連線的主機沒有反應,連線嘗試失敗。',
))需要驗證證書
直接使用try:catch
import requests
import re
import os
from lxml import etree
headers =
defget_page
(num)
: img_list =
for i in
range
((num //35)
+1):
url =
f'&first=
&count=35&relp=35&scenario=imagebasichover&datsrc=i&layout=rowbased_landscape&mmasync=1'
r = requests.get(url, headers=headers)
html = r.text
html = etree.html(html)
conda_list = html.xpath(
'//a[@class="iusc"]/@m'
)for j in conda_list:
pattern = re.
compile
(r'"murl":"(.*?)"'
) img_url = re.findall(pattern, j)[0
]return img_list
defdownload
(path, img_list)
:for i in
range
(len
(img_list)):
img_url = img_list[i]
print
(f'正在爬取: ')
'食品街'
path =
'd://'
img_list = get_page(num)
download(path, img_list)
python爬取必應的桌布
閒著沒事。想找點桌布,於是用python寫個爬蟲來爬個桌布吧。1 收先安裝python環境 2.安裝所需要的三方庫 win下 pip install requests pip install beautifulsoup4 import requests import urllib.request i...
PYTHON 爬蟲 必應詞典翻譯爬取
python 爬蟲 必應詞典翻譯爬取 同時實現英譯漢及漢譯英 通過瀏覽器右擊 檢查 查詢url 等內容 上 方法一 通過使用者輸入需要操作進行翻譯 import json import requests url headers lan int input 漢譯英 輸入1 英譯漢 輸入2 word i...
python 爬取王者榮耀高畫質桌布
位址如下 打過王者的童鞋一般都會喜歡裡邊設計出來的英雄吧,特別想把王者榮耀的英雄的高畫質當成電腦桌面 預覽一下桌面吧 問題簡單了就 api 返回情況,大致如下 是乙個jsonp callback的返回 這種情況一般是callback後邊對應了乙個json物件,我們可以用python的 json 類庫...