Python 制作糗事百科爬蟲實例
早上起來閑來無事做,莫名其妙的就彈出了糗事百科的段子,轉(zhuǎn)念一想既然你送上門來,那我就寫個爬蟲到你網(wǎng)站上爬一爬吧,一來當(dāng)做練練手,二來也算找點樂子。
其實這兩天也正在接觸數(shù)據(jù)庫的內(nèi)容,可以將爬取下來的數(shù)據(jù)保存在數(shù)據(jù)庫中,以待以后的利用。好了,廢話不多說了,先來看看程序爬取的數(shù)據(jù)結(jié)果
值得一提的是,我在程序中想一下子爬取糗事百科 30 頁的內(nèi)容,但是出現(xiàn)了連接錯誤,當(dāng)我把頁數(shù)降到 20 頁的時候,程序就可以正常的跑起來了,不知道是什么原因,渴望知道的大神可以告訴我一聲,感激不盡。
程序非常簡單,直接上源代碼咯
# coding=utf8 import re import requests from lxml import etree from multiprocessing.dummy import Pool as ThreadPool import sys reload(sys) sys.setdefaultencoding('utf-8') def getnewpage(url, total): nowpage = int(re.search('(\d+)', url, re.S).group(1)) urls = [] for i in range(nowpage, total + 1): link = re.sub('(\d+)', '%s' % i, url, re.S) urls.append(link) return urls def spider(url): html = requests.get(url) selector = etree.HTML(html.text) author = selector.xpath('//*[@id="content-left"]/div/div[1]/a[2]/@title') content = selector.xpath('//*[@id="content-left"]/div/div[2]/text()') vote = selector.xpath('//*[@id="content-left"]/div/div[3]/span/i/text()') length = len(author) for i in range(0, length): f.writelines('作者 : ' + author[i] + '\n') f.writelines('內(nèi)容 :' + str(content[i]).replace('\n','') + '\n') f.writelines('支持 : ' + vote[i] + '\n\n') if __name__ == '__main__': f = open('info.txt', 'a') url = 'http://www.qiushibaike.com/text/page/1/' urls = getnewpage(url, 20) pool = ThreadPool(4) pool.map(spider,urls) f.close()
如果其中有不懂得部分,可以依次參考我的前三篇文章。
相關(guān)文章
Python使用base64模塊進(jìn)行二進(jìn)制數(shù)據(jù)編碼詳解
這篇文章主要介紹了Python使用base64模塊進(jìn)行二進(jìn)制數(shù)據(jù)編碼詳解,具有一定借鑒價值,需要的朋友可以參考下2018-01-01Python爬取當(dāng)網(wǎng)書籍?dāng)?shù)據(jù)并數(shù)據(jù)可視化展示
這篇文章主要介紹了Python爬取當(dāng)網(wǎng)書籍?dāng)?shù)據(jù)并數(shù)據(jù)可視化展示,下面文章圍繞Python爬蟲的相關(guān)資料展開對爬取當(dāng)網(wǎng)書籍?dāng)?shù)據(jù)的詳細(xì)介紹,需要的小伙伴可以參考一下,希望對你有所幫助2022-01-01在cmd中運(yùn)行.py文件: python的操作步驟
今天小編就為大家分享一篇在cmd中運(yùn)行.py文件: python的操作步驟,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05Python實現(xiàn)信用卡系統(tǒng)(支持購物、轉(zhuǎn)賬、存取錢)
這篇文章主要介紹了Python實現(xiàn)信用卡系統(tǒng)(支持購物、轉(zhuǎn)賬、存取錢)的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-06-06Python面向?qū)ο笕筇卣?封裝、繼承、多態(tài)
這篇文章主要介紹了Python面向?qū)ο笕筇卣?封裝、繼承、多態(tài),下面文章圍繞Python面向?qū)ο笕筇卣鞯南嚓P(guān)資料展開具體內(nèi)容,需要的朋友可以參考一下,希望對大家有所幫助2021-11-11