Python 制作糗事百科爬蟲實例
早上起來閑來無事做,莫名其妙的就彈出了糗事百科的段子,轉念一想既然你送上門來,那我就寫個爬蟲到你網站上爬一爬吧,一來當做練練手,二來也算找點樂子。
其實這兩天也正在接觸數(shù)據(jù)庫的內容,可以將爬取下來的數(shù)據(jù)保存在數(shù)據(jù)庫中,以待以后的利用。好了,廢話不多說了,先來看看程序爬取的數(shù)據(jù)結果

值得一提的是,我在程序中想一下子爬取糗事百科 30 頁的內容,但是出現(xiàn)了連接錯誤,當我把頁數(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('內容 :' + 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()
如果其中有不懂得部分,可以依次參考我的前三篇文章。
相關文章
python itchat實現(xiàn)調用微信接口的第三方模塊方法
這篇文章主要介紹了python itchat實現(xiàn)調用微信接口的第三方模塊方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-06-06
python導出chrome書簽到markdown文件的實例代碼
python導出chrome書簽到markdown文件,主要就是解析chrome的bookmarks文件,然后拼接成markdown格式的字符串,最后輸出到文件即可。下面給大家分享實例代碼,需要的朋友參考下2017-12-12
Python實現(xiàn)html轉換為pdf報告(生成pdf報告)功能示例
這篇文章主要介紹了Python實現(xiàn)html轉換為pdf報告功能,結合實例形式分析了Python使用pdfkit實現(xiàn)HTML轉換為PDF的相關操作技巧與注意事項,需要的朋友可以參考下2019-05-05

