前言
自己动手,丰衣足食。本来的想法是爬取糗事百科的段子,然后发送到自己的邮箱,这样可以在电脑上,定时运行爬虫,然后,在手机端看段子了。但是,qq邮箱的smtp,一直没有配置好,所以只能先把段子保存到本地,有时间在优化。
talk is cheap,show my code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
import requests
from bs4 import BeautifulSoup
import codecs
import os
def bs_textAnalysize(content):
soup = BeautifulSoup(content,'lxml')
content_list = soup.find_all('div',class_ = 'content')
text_list = []
for text in content_list:
span = text.find('span').text
text_list.append(span)
return text_list
def main(url,data):
text_list = []
for burl in url :
response = requests.get(burl)
response.encoding = 'utf-8'
content = response.text
text = bs_textAnalysize(content)
text_list += text
with codecs.open(data + '笑话.txt','w+','utf-8') as fp:
for i,text in enumerate(text_list):
fp.write('第'+ str(i + 1) + '个笑话:\n')
fp.write(text + '\n')
if __name__ == '__main__':
base_url = 'https://www.qiushibaike.com/text/page/'
data = '../data/'
if not os.path.exists(data):
os.mkdir(data)
maxNum = 10
url = [base_url + str(i) for i in range(1,maxNum)]
main(url,data)
print('ok')
|
代码很简单,才36行。但是,代码爬取了,糗百的text分类下的10个页面的所有段子,大约有200多个。所以说,人生苦短,我用python。下面来一一解析。
引入库
引入了requests和BeautifulSoup这两个最好用的第三方库,以及python自带的os和codecs库。
main函数
其中url是个list,里面全是糗事百科的连接,然后用main来调用其他函数,main有两个参数,一个是url的list,一个是笑话的存储位置(data)。
bs_textAnalysize 函数
使用BeautifulSoup来抽取段子的内容,然后将一个一个的段子加入到list中,并在main函数里,保存起来。
最后来一张效果图
