爬蟲代碼基本步驟
第一步:
分析網(wǎng)站,尋找目標(biāo)URL
第二步:
分析目標(biāo)URL參數(shù)(get,post)
get和post請求的區(qū)別:
get請求參數(shù)部分:把?后面的參數(shù)寫在字典中,然后使用parse.urlencode(字典參數(shù)),得到了url編碼格式的字符串
post請求參數(shù)部分:是處理表單數(shù)據(jù),將變淡u數(shù)據(jù)放在字典中,然后使用parse.urlencode(字典參數(shù)),得到了url編碼格式的字符串使用encode方法將字符串轉(zhuǎn)為bytes類型
第三步(發(fā)起請求):
(1):設(shè)置請求頭,添加UA(cookie,referer)
(2):實(shí)例化一個(gè)Request對象(request.Request)
(3):根據(jù)實(shí)例化的Request對象,使用request.urlopen()方法發(fā)起請求
第四步(處理響應(yīng)結(jié)果):
(1):Ajax請求得到的一般是json數(shù)據(jù),使用json模塊處理,使用json.loads將json字符串,轉(zhuǎn)為python數(shù)據(jù)類型
(2):對于飛非結(jié)構(gòu)化數(shù)據(jù)(數(shù)據(jù)在html頁面中),可以使用re正則模塊提取數(shù)據(jù)(xpath,BeautifulSoup,pyquery)
(3):如果還有其他url需要發(fā)起請求則繼續(xù)發(fā)起請求
第五步(數(shù)據(jù)的持久化):
(1):文件存儲(chǔ)(json,csv,txt。。。。。。)
(2):數(shù)據(jù)庫存儲(chǔ)(mongodb,MySQL,redis。。。。。。)