一、缘由

  这是我之前刚开始学习的时候爬取糗百的练习内容,主要练习的是bs64解析。虽然现在用的不是特别的多,但是当初的时候用起来还是非常的顺手的。

二、代码实现

#coding:utf-8

import requests
from bs4 import BeautifulSoup def download_page(url):
headers={
'User - Agent':"Mozilla / 5.0(Windows NT 10.0; WOW64) AppleWebKit / 537.36(KHTML, like Gecko) Chrome / 86.0.4240.198 Safari / 537.36"
} #模拟请求登录
r=requests.get(url,headers=headers)
return r.text def get_content(html,page):
output='''第{}页 作者:{}性别:{}年龄:{}点赞:{}\n{}\n----------\n\n'''
soup=BeautifulSoup(html,'html.parser')
con=soup.find('div',id='content')
con_list=con.find_all('div',class_='article')
for i in con_list:
# hot_comments = i.find('div', class_='main-text').get_text() # 获取热评
vote = i.find('i', class_='number').string # 点赞数
author=i.find('h2').string #获得作者的名字
content=i.find('div',class_='content').find('span').get_text() #获取内容
author_info=i.find('div',class_='artciGender') #获取性别,年龄等
if author_info is not None:
class_list=author_info['class']
if 'womenIcon' in class_list:
gender='女'
elif 'manIcon' in class_list:
gender='男'
else:
gender=''
age=author_info.string
else:
gender=''
age=''
save_txt(output.format(page,author,gender,age,vote,content,))#hot_comments def save_txt(*args):
for i in args:
with open('qiubai.txt','a',encoding='utf-8') as f:
f.write(i)
print(i) def main():
for i in range(1,14):
url=f'''https://www.qiushibaike.com/text/page/{i}/'''
html=download_page(url)
get_content(html, i) if __name__ == '__main__':
main()

三、效果展示

最新文章

  1. 微信,qq,微博如何不用每次清缓存就能看到h5修改过的结果
  2. [HTML] CSS Id 和 Class选择器
  3. spring实战一:装配bean之注入Bean属性
  4. 根据数据库内容动态生成html页面
  5. trident 序列号问题
  6. Junit单元测试的实例
  7. 如何设置EditPlus的默认编码utf-8方式
  8. Entity Framewor 学习笔记 (Enum)
  9. ORACLE存储过程笔记3
  10. [Cocos2d-x]Mac下运行HelloCpp For Android
  11. html5--画布
  12. ZOJ2401 Zipper 双塔式 DP
  13. jquery运用FormData结合Ajax异步上传表单,超实用
  14. shutil.copy()、os.walk()、os.rename()实例
  15. day11 匿名函数
  16. DDR3基本知识及测试【转】
  17. QT,QT SDK, QT Creator 区别
  18. 30_网络编程-socketserver
  19. js for form
  20. Oracle学习笔记(九)

热门文章

  1. Elasticsearch:inverted index,doc_values及source
  2. MySQL 的七种日志总结
  3. 监控Redis集群--废弃,使用新教程
  4. 企业信息化建PLM系统、ERP系统、MES系统是单个逐步建设好,还是同时上比较好?
  5. [题解] Atcoder Beginner Contest ABC 270 G Ex 题解
  6. C#-4 方法
  7. 干货|什么是特性团队/功能团队(FeatureTeam)
  8. kubernetes VS OpenShift浅析
  9. k8s集群正常kubectl用不了
  10. <一>从指令角度了解函数堆栈调用过程