python爬虫获取多页天涯帖子


Posted in Python onFebruary 23, 2018

今天练习了抓取多页天涯帖子,重点复习的知识包括

  • soup.find_all和soup.selcet两个筛选方式对应不同的参数;
  • 希望将获取到的多个内容组合在一起返回的时候,要用'zip()'的代码来实现;
  • 两层代码结构之间的关系如何构造;

这里有一个疑问:有时候一个标签可以有多个属性,不知道soup.find_all()能不能接受不止一个属性以缩小查找的范围。

# 引入库和请求头文件
import requests
from bs4 import BeautifulSoup
headers = {
  'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36'
}

# 定义主体函数。函数主体由四部分组成:
#1.请求网址
#2.解析网页,形成可查找的html格式
#3.通过soup.select或者sopu.find_all查找需要的标签
#4.通过zip()代码将多个内容合并在一起

def get_content(url):
  res = requests.get(url,headers = headers)
  res.encoding = 'utf-8'
  soup = BeautifulSoup(res.text,'html.parser')
  contents = soup.find_all('div','bbs-content')
  authors = soup.find_all('a','js-vip-check')
  for author,content in zip(authors,contents):
    data = {
    'author':author.get_text().strip(),
    'content': content.get_text().strip()
  }
    print(data)
# 在这里构造一个两层链接结构:帖子的1、2、3、4页和帖子的详情页的关系在这里实现
if __name__ == '__main__':
  urls = ['http://bbs.tianya.cn/post-develop-2271894-{}.shtml'.format(str(i)) for i in range (1,5)] # 要注意,这里的‘5'是不包括在范围里的
  for url in urls:
    get_content(url)
Python 相关文章推荐
Python中list查询及所需时间计算操作示例
Jun 21 Python
Django实现学员管理系统
Feb 26 Python
Python面向对象程序设计构造函数和析构函数用法分析
Apr 12 Python
Python 获取 datax 执行结果保存到数据库的方法
Jul 11 Python
python字典setdefault方法和get方法使用实例
Dec 25 Python
Python魔法方法 容器部方法详解
Jan 02 Python
python使用SQLAlchemy操作MySQL
Jan 02 Python
Keras 切换后端方式(Theano和TensorFlow)
Jun 19 Python
python创建文本文件的简单方法
Aug 30 Python
Python实现迪杰斯特拉算法过程解析
Sep 18 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
Nov 26 Python
Python 线程池模块之多线程操作代码
May 20 Python
Python即时网络爬虫项目启动说明详解
Feb 23 #Python
Python爬豆瓣电影实例
Feb 23 #Python
Python抓取聚划算商品分析页面获取商品信息并以XML格式保存到本地
Feb 23 #Python
Python各类图像库的图片读写方式总结(推荐)
Feb 23 #Python
python自动发邮件库yagmail的示例代码
Feb 23 #Python
Python KMeans聚类问题分析
Feb 23 #Python
浅谈python爬虫使用Selenium模拟浏览器行为
Feb 23 #Python
You might like
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
2009/03/13 PHP
destoon实现底部添加你是第几位访问者的方法
2014/07/15 PHP
php抓取网站图片并保存的实现方法
2015/10/29 PHP
PHP读取XML格式文件的方法总结
2017/02/27 PHP
yii2 resetful 授权验证详解
2017/05/18 PHP
PHP实现的杨辉三角求解算法分析
2019/03/11 PHP
Asp.net下利用Jquery Ajax实现用户注册检测(验证用户名是否存)
2010/09/12 Javascript
从零开始学习jQuery (四) jQuery中操作元素的属性与样式
2011/02/23 Javascript
nodejs 后缀名判断限制代码
2011/03/31 NodeJs
jquery中animate动画积累的解决方法
2013/10/05 Javascript
每天一篇javascript学习小结(String对象)
2015/11/18 Javascript
用JavaScript动态建立或增加CSS样式表的实现方法
2016/05/20 Javascript
vue组件间通信解析
2017/03/01 Javascript
微信JS-SDK选取手机照片上传功能
2017/04/21 Javascript
元素全屏的设置与监听实例
2017/11/28 Javascript
浅谈vue父子组件怎么传值
2018/07/21 Javascript
vue2.0基于vue-cli+element-ui制作树形treeTable
2019/04/30 Javascript
详解Element-UI中上传的文件前端处理
2019/08/07 Javascript
vue集成chart.js的实现方法
2019/08/20 Javascript
[01:24:51]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第二场
2014/05/26 DOTA
[01:35]2018完美盛典章节片——共竞
2018/12/17 DOTA
测试、预发布后用python检测网页是否有日常链接
2014/06/03 Python
Python计算回文数的方法
2015/03/11 Python
编写Python爬虫抓取暴走漫画上gif图片的实例分享
2016/04/20 Python
详解Python中的动态属性和特性
2018/04/07 Python
python中利用matplotlib读取灰度图的例子
2019/12/07 Python
pytorch常见的Tensor类型详解
2020/01/15 Python
基于Python实现简单学生管理系统
2020/07/24 Python
英国国家美术馆商店:National Gallery
2019/05/01 全球购物
《蒲公英》教学反思
2014/02/28 职场文书
家长通知书教师评语
2014/04/17 职场文书
体育比赛口号
2014/06/09 职场文书
试用期自我评价怎么写
2015/03/10 职场文书
2015年学生会个人工作总结
2015/04/09 职场文书
公安干警正风肃纪心得体会
2016/01/15 职场文书
导游词之大雁塔景区
2019/09/17 职场文书