Python 爬取必應(桌布 搜尋詞)

2021-10-07 08:58:26 字數 4527 閱讀 1091

效果如下:

**如下:

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 類庫...