Python爬虫入门_实战求实百科
1.爬虫需求
爬取 作者、内容、好笑数、评论数 每一页写入一个 txt文件
此网站爬取过程中 没有遇到反扒手段,但也建议大家适度爬取、文明爬取。
2.实现效果
每一页爬取到的数据 写入一个 txt 文件,没有去拉取内容的详细数据,只是为了 练习使用 BeautifulSoup
3.代码实现
代码比较简单,看过前面几篇 而且实操过的,都没什么问题。
# 爬取 糗事百科,每一页写入一个 txt 文件
import requests
from bs4 import BeautifulSoup
from lxml.doctestcompare import strip
url = 'https://www.qiushibaike.com/text/'
orgUrl = 'https://www.qiushibaike.com/text/'
page = 1
def talk(url, orgUrl, page):
html = requests.get(url)
soup = BeautifulSoup(html.text, 'html.parser')
talk_list = soup.find(class_='col1 old-style-col1').children
article_list = []
for item in talk_list:
if item.name == 'div':
article = {}
article['author'] = item.find('img')['alt']
article['content'] = strip(item.find(class_='content').text)
article['laughableCount'] = item.find(class_='stats-vote').find(class_='number').string
article['commentCount'] = item.find(class_='stats-comments').find(class_='number').string
article_list.append(article)
# 检查是否还有下一页
next = soup.find(class_='next')
with open(str(page) + '.txt', 'a+', encoding='utf-8') as f:
for item in article_list:
f.write('作者:{} \n 内容:{}\n 好笑:{}\n 评论:{} \n\n'.format(
item['author'], item['content'], item['laughableCount'], item['commentCount']
))
if next is not None:
page = page + 1
talk(orgUrl + 'page/' + str(page) + '/', orgUrl, page)
if __name__ == '__main__':
talk(url,orgUrl, page)
不要空想,想一百遍,都是在原地。 end
人生没有绝对的公平,而是相对公平。在一个天平上,你得到越多,势必要承受更多,每一个看似低的起点,都是通往更高峰的必经之路。
评论区