因為寫12306搶票腳本需要用到爬蟲技術下載驗證碼並進行定位點擊所以這章主要講解,爬蟲,從網頁上爬取圖片並進行下載到本地
- 爬蟲實現方式:
1.首先選取你需要的抓取的URL;
2.將這些URL放入待抓取URL隊列;
3.從待抓取URL隊列中取出待抓取在URL,解析DNS,並且得到主機的ip, 並將URL對應的 網頁下載下來,存儲進已下載網頁庫中。此外,將這些URL放進已抓取URL隊列。
2.將這些URL放入待抓取URL隊列;
3.從待抓取URL隊列中取出待抓取在URL,解析DNS,並且得到主機的ip, 並將URL對應的 網頁下載下來,存儲進已下載網頁庫中。此外,將這些URL放進已抓取URL隊列。
4.分析已抓取URL隊列中的URL,分析其中的其他URL,並且將URL放入待抓取URL隊列,
從而進入下一個循環。(下面找的別人的圖)

- 環境 :
- python
- re
- requests
- 正則:
pic_url = re.findall('"objURL":"(.*?)",',html, re.S)
- 小技巧:這邊的正則如果你不太確定有沒有匹配到的話可以使用notepad++來匹配下
- 第一步查看你需要抓取網頁右擊查看源代碼
- 第二步把代碼貼入notepad++中
- 第三步f12查詢選擇正則進行匹配
- 也可用這個網址:http://tool.oschina.net/regex/#
- 廢話不多說直接上代碼
import re
import requests
def download(html):
#通過正則匹配
pic_url = re.findall('"objURL":"(.*?)",',html, re.S)
i = 1
for key in pic_url:
print("開始下載圖片:"+key +"\r\n")
try:
pic = requests.get(key, timeout=10)
except requests.exceptions.ConnectionError:
print('圖片無法下載')
continue
#保存圖片路徑
dir = '保存路徑' + str(i) + '.jpg'
fp = open(dir, 'wb')
fp.write(pic.content)
fp.close()
i += 1
def main():
url = 'https://image.baidu.com/search/index?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&sf=1&fmq=&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&fm=index&pos=history&word=lay'
result = requests.get(url)
download(result.text)
if __name__ == '__main__':
main()
- 最后找到你下載圖片的文件,然后看下小綿羊的盛世美顏