《用Python寫網路爬蟲》第一章踩坑
阿新 • • 發佈:2018-11-04
教程使用環境為pyhon2.x,使用python3.x進行學習時遇到一些坑,記錄下解決辦法。
由於python2.x中的urllib2模組在3.x中被整合到了urllib模組中,教程中涉及urllib2的部分的程式碼需調整
1.4.1下載網頁:
urlopen:
from urllib import request as r
r.urlopen()
URLError:
except r.URLError as e:
1.4.4連結爬蟲:
urlparse名字改為parse:
from urllib import parse
link = parse.urljoin(seed_url, link)
1.4.4支援代理:
Request & build_opener():
from urllib import request as r
request = r.Request(url, headers=headers)
opener = r.build_opener()
最終版本程式碼(bitbucket連結內):
deque:
from collections import deque
crawl_queue = deque([seed_url])
正則表示式(部分頁面地址有所變化,因此匹配規則做部分修改):
get_links(...):
re.compile('<a[^>]+href=["\']([^#].*?)["\']', re.I)
link_regex ='/.*? (index|view)'