-
確定目標(biāo)--->分析目標(biāo)(URL格式,數(shù)據(jù)格式,網(wǎng)頁(yè)編碼)--->編寫(xiě)代碼
分析目標(biāo):制定抓取網(wǎng)站數(shù)據(jù)的策略;
URL格式:用來(lái)限定我們要抓取的頁(yè)面的范圍,如果范圍不進(jìn)行限定的話就會(huì)抓取去多不相關(guān)的網(wǎng)頁(yè),造成資源浪費(fèi)。
數(shù)據(jù)格式:分析每個(gè)詞條頁(yè)面的標(biāo)題等,數(shù)據(jù)所在的標(biāo)簽的格式。
網(wǎng)頁(yè)編碼:在代碼解析器上指定網(wǎng)頁(yè)的編碼格式,然后才能進(jìn)行正確的解析。
詞條頁(yè)面URL不是一個(gè)完整的URL,所以需要在代碼中補(bǔ)全;
數(shù)據(jù)格式在<h1>標(biāo)簽中,
查看全部 -
訪問(wèn)節(jié)點(diǎn)信息
查看全部 -
搜索節(jié)點(diǎn)(find_all,find)
find_all(name,attrs,string)[名稱、屬性、文字]
對(duì)于它的名稱,屬性和文字,都可傳入一個(gè)正則表達(dá)式來(lái)匹配
'class'后加了'_'的原因:python的關(guān)鍵字有class,bs為了避免沖突,加了一個(gè)'_'
查看全部 -
創(chuàng)建BeautifulSoup對(duì)象
查看全部 -
Beautiful Soup語(yǔ)法?
查看全部 -
網(wǎng)頁(yè)解析器——Beautiful Soup
查看全部 -
結(jié)構(gòu)化解析——DOM
查看全部 -
網(wǎng)頁(yè)解析器類型:
1正則表達(dá)式,使用字符串的模糊匹配,不適用于復(fù)雜的
2Python自帶模塊(http.parser)
3主要使用,為第三方插件(Beautiful Soup)
4第三方插件(lxml)
查看全部 -
網(wǎng)頁(yè)解析器
查看全部 -
Python爬蟲(chóng)URL管理器的實(shí)現(xiàn)方式(三種)
(一)將已爬取或和待爬取的URL集合存放在內(nèi)存中,用Python語(yǔ)言的話,可以將這兩個(gè)URL集合放在set()數(shù)據(jù)結(jié)構(gòu)中,Python的set結(jié)構(gòu)可以自動(dòng)去除重復(fù)的內(nèi)容,
(二)將URL存放在關(guān)系數(shù)據(jù)庫(kù)中,建立一個(gè)表,有兩個(gè)字段(url,is_crawled),is_crawled字段標(biāo)志這個(gè)URL的狀態(tài)是待爬取還是已爬取。
(三)將URL存放在一個(gè)緩存數(shù)據(jù)庫(kù)中,比如redis,本身支持set的結(jié)構(gòu),所以我們可以將待爬取的和已爬取的URL存放在set中。
查看全部 -
def?output_html(self): ????#?看似沒(méi)有問(wèn)題,并且在控制臺(tái)輸出的html也不會(huì)出現(xiàn)中文亂碼,但是創(chuàng)建的html文件中 ????#?使用open方法的一個(gè)參數(shù),名為encoding=”?“,加入encoding=”utf-8”即可 ????fout?=?open('output.html',?'w',?encoding="utf-8") ????fout.write("<html>") ????fout.write("<head><meta?charset=\"utf-8\"></head>") ????fout.write("<body>") ????fout.write("<table>") ????#?ascii ????for?data?in?self.datas: ????????fout.write("<tr>") ????????fout.write("<td>%s</td>"?%?data['url']) ????????fout.write("<td>%s</td>"?%?data['title']) ????????fout.write("<td>%s</td>"?%?data['summary']) ????????fout.write("</tr>") ????????print(data['summary']) ????fout.write("</table>") ????fout.write("</body>") ????fout.write("</html>") ????fout.close()
查看全部 -
添加特殊情況處理器實(shí)例
查看全部 -
特殊場(chǎng)景。
查看全部 -
urllib2下載網(wǎng)頁(yè)方法2:data、http header
查看全部 -
網(wǎng)頁(yè)下載器-urllib2(python 3 有不同)
查看全部
舉報(bào)