朝、何もすることがなく目が覚めると、どこからともなく「恥ずかしいことの百科事典」のジョークが現れました。それから、あなたが私にそれを送ってくれたので、あなたのウェブサイトをクロールするためのクローラーを書いてみようと思いました。まずは練習用ですので、遊びに来てください。
実際、私は過去 2 日間でデータベースの内容にさらされています。クロールされたデータは将来の使用のためにデータベースに保存できます。さて、早速、プログラムによってクロールされたデータの結果を見てみましょう
プログラムでは、恥ずかしいことの百科事典の 30 ページをクロールしたかったのですが、リンクが間違って表示されたことに注意してください。 、ページ数を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"]/p/p[1]/a[2]/@title') content = selector.xpath('//*[@id="content-left"]/p/p[2]/text()') vote = selector.xpath('//*[@id="content-left"]/p/p[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()
わからない部分がある場合は、最初の3つの記事を順番に参照してください。
Python による恥ずかしい百科事典クローラーの作成に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。