python爬取糗百段子

网友投稿 676 2022-09-17

python爬取糗百段子

python爬取糗百段子

(1)目标网站为:https://qiushibaike.com/text/

(2)爬取目标网站10页内容

(4)保存在字典中,格式如下:

{

'内容':'。。。。。。',

}

……

}

(5)将内容转换为jsON保存在文本中

1,首先对网页url进行分析确定前10页的url.

2,引用   requests   bs4  json库。

3,写主函数 主函数下面有 请求url的函数 将 内容 作为参数交给 bs4 做处理(需要确定网页标签) 得到最终数据  做持久化保存。

import requests

from bs4 import BeautifulSoup as BS

import json

headers={

"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.36"

}

#ua伪装

text='https://qiushibaike.com/text'

count_num=1

def get_html(url):

html=requests.get(url,headers=headers)

#请求url

return html.text

#返回整页的数据,请求多少页返回多少页的数据。

def bs_html(text_content,content_dict):

global count_num

soup=BS(text_content,'html.parser')

#是要bs库里面的html.parser方法对text_content进行排序(text_content就是爬取的页面的html)

soup_list=soup.select('#content .article ')

#使用bs里的select这个方法找到页面里面标签。

for item in soup_list:

#循环这个整体标签(这是整个页面,我们需要里面的某些数据)

biaoti=item.select_one('.author a h2')

#item作为临时变量,每循环一次都要在里面提取出整体标签下的 h2 标签,这个就是标题,赋值给前面biaoti这个变量

if biaoti:

biaoti = biaoti.text.strip()

else:

biaoti='匿名用户'

content=item.select_one('a .content span').text.strip()

#整体标签下的内容也是上述方法,提取出来

#使用这个空字典 前面加上计数器 后面是字典形式 每循环一次对应的计数+1

count_num += 1

return content_dict

#返回整个字典

def save_text(text_list):

#保存文件函数

with open('rut.txt','w',encoding='utf8')as f:

#这个文件不存在 以写的方式打开就自动创建 起个别名f

f.write(text_list)

#对f进行保存 保存处理后的字典

f.close()

#保存后关闭文件

def main(num):

content_dict={}

#定义空字典

for i in range(1,num+1):

#循环次数 num是形参

url=text+'/page{}/'.format(i)

#最终的url 对初始的url进行拼接 ,最终得到10页子url

text_content=get_html(url)

#对url请求,返回的数据赋值给 text_content这个变量,作为bs函数的参数。

text_list=bs_html(text_content,content_dict)

#bs函数对整体的网页数据,空字典进行处理,当作两个参数放进去,上面bs函数处理好后返回整个字典,赋值给text_list这个变量

save_text(json.dumps(text_list,ensure_ascii=False))

#对数据保存前还要进行处理,参数是bs处理后的字典 去掉ascii这个编码格式,保存时使用utf8格式

if __name__ == '__main__':

main(10)

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Android Studio导入github下载的工程
下一篇:【硬盘数据恢复】硬盘有异响,磁头损坏的硬盘数据恢复
相关文章

 发表评论

暂时没有评论,来抢沙发吧~