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实现baidu hi自动登录的代码
Feb 10 Python
python定时检查某个进程是否已经关闭的方法
May 20 Python
Python fileinput模块使用实例
Jun 03 Python
实例讲解Python中global语句下全局变量的值的修改
Jun 16 Python
利用python程序生成word和PDF文档的方法
Feb 14 Python
python实现决策树分类
Aug 30 Python
实例详解Python装饰器与闭包
Jul 29 Python
基于python实现文件加密功能
Jan 06 Python
Pycharm 安装 idea VIM插件的图文教程详解
Feb 21 Python
Python3爬虫中关于Ajax分析方法的总结
Jul 10 Python
python 爬虫如何正确的使用cookie
Oct 27 Python
Elasticsearch 基本查询和组合查询
Apr 19 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
PHP中使用Session配合Javascript实现文件上传进度条功能
2014/10/15 PHP
[原创]PHP正则匹配中英文、数字及下划线的方法【用户名验证】
2017/08/01 PHP
解析Jquery的LigerUI如何实现文件上传
2013/07/09 Javascript
用JavaScript实现动画效果的方法
2013/07/20 Javascript
JS获取URL中参数值(QueryString)的4种方法分享
2014/04/12 Javascript
浅谈 jQuery 事件源码定位问题
2014/06/18 Javascript
jquery mobile开发常见问题分析
2016/01/21 Javascript
适用于javascript开发者的Processing.js入门教程
2016/02/24 Javascript
在Web项目中引入Jquery插件报错的完美解决方案(图解)
2016/09/19 Javascript
常用的js方法合集
2017/03/10 Javascript
jquery submit()不能提交表单的解决方法
2017/04/24 jQuery
jquery点赞功能实现代码 点个赞吧!
2020/05/29 jQuery
适用于 Vue 的播放器组件Vue-Video-Player操作
2020/11/16 Javascript
[15:35]教你分分钟做大人:天怒法师
2014/10/30 DOTA
[26:40]DOTA2上海特级锦标赛A组资格赛#1 Secret VS MVP.Phx第一局
2016/02/25 DOTA
Linux下使用python调用top命令获得CPU利用率
2015/03/10 Python
Python中字典的setdefault()方法教程
2017/02/07 Python
Python利用公共键如何对字典列表进行排序详解
2018/05/19 Python
python3监控CentOS磁盘空间脚本
2018/06/21 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
2019/08/05 Python
使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法
2019/09/06 Python
Python3.8对可迭代解包的改进及用法详解
2019/10/15 Python
tensorflow 获取所有variable或tensor的name示例
2020/01/04 Python
解决Jupyter因卸载重装导致的问题修复
2020/04/10 Python
纯CSS3实现带动画效果导航菜单无需js
2013/09/27 HTML / CSS
俄罗斯家居用品购物网站:Евродом
2020/11/21 全球购物
Brasty罗马尼亚:购买手表、香水、化妆品、珠宝
2020/04/21 全球购物
大学生自荐书范文
2013/12/10 职场文书
雪山饭庄的创业计划书范文
2014/01/18 职场文书
竞争上岗实施方案
2014/03/21 职场文书
目标管理责任书
2014/04/15 职场文书
大学自主招生推荐信
2014/05/10 职场文书
环保标语大全
2014/06/12 职场文书
2016抗战胜利71周年红领巾广播稿
2015/12/18 职场文书
tensorboard 可视化之localhost:6006不显示的解决方案
2021/05/22 Python
解决mysql的int型主键自增问题
2021/07/15 MySQL