網上大多爬蟲仍舊是python2的urllib2寫的,不過,堅持用python3(3.5以上版本可使用異步I/O)python
相信有很多人爬蟲第一次爬的是Mm圖,網上不少爬蟲的視頻教程也是爬mm圖,看了某人的視頻後,把這個爬蟲給完成了正則表達式
由於爬取的內容涉及我的隱私,因此,爬取的代碼及網址不在此公佈,不過介紹一下爬取的經驗:服務器
1.咱們首先得了解咱們要爬取的是什麼,在哪爬取這些信息,不要着急想用什麼工具,怎麼搞,怎麼搞得異步
2.手動操做一遍爬蟲要完成的任務,我這個就是爬圖片的,能夠本身操做一遍函數
3.打開抓包軟件或者Google的F12調試工具,查看數據,瞭解請求過程當中的信息,如網址,發送請求的數據工具
大概瞭解以上信息後,能夠開始編寫爬蟲了(我的經驗,大牛勿噴,,,)fetch
介紹python3用於爬蟲的模塊及方法:編碼
能夠查看官方的API文檔,看懂文檔,下面的就不用看了url
urllib包:在python2中urllib和urllib2是分開的,python3合併在了一塊兒,強調,這是個包,因此不少函數不同了,可是仍是那個味道spa
urllib.request
for opening and reading URLsurllib.error
containing the exceptions raised by urllib.request
urllib.parse
for parsing URLsurllib.robotparser
for parsing robots.txt
files 這四個模塊中urllib.request是經常使用的,urllib.parse中urlencode()也是會用到的
在urllib.request中,經常使用的方法:
urllib.request.
urlopen
(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
class urllib.request.
Request
(url, data=None, headers={}, origin_req_host=None, unverifiable=False, method=None)
headers參數,若是不想很容易被服務器發現,那麼最起碼加個user-agent吧,固然,你能夠設置代理ip
urllib.parse.
urlencode
(query, doseq=False, safe='', encoding=None, errors=None, quote_via=quote_plus)
將請求發送的data字典轉化爲str,通過編碼,data成了(get請求不用)
在爬取的過程當中,正則表達式必定會用到,推薦一款軟件:MTracer,能夠本身嘗試寫正則:
仍是很不錯的,誰爬誰知道