1. 程式人生 > >《用Python寫網路爬蟲》第一章踩坑

《用Python寫網路爬蟲》第一章踩坑

教程使用環境為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)'