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列表推导式的使用方法
Nov 21 Python
python之wxPython应用实例
Sep 28 Python
Python实现PS滤镜特效之扇形变换效果示例
Jan 26 Python
更换Django默认的模板引擎为jinja2的实现方法
May 28 Python
利用python脚本如何简化jar操作命令
Feb 24 Python
python读取.mat文件的数据及实例代码
Jul 12 Python
Python Pandas 箱线图的实现
Jul 23 Python
使用PYTHON解析Wireshark的PCAP文件方法
Jul 23 Python
python 的topk算法实例
Apr 02 Python
如何导出python安装的所有模块名称和版本号到文件中
Jun 05 Python
python调用摄像头的示例代码
Sep 28 Python
PYTHON 使用 Pandas 删除某列指定值所在的行
Apr 28 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
PHP5中使用DOM控制XML实现代码
2010/05/07 PHP
php $_SERVER["REQUEST_URI"]获取值的通用解决方法
2010/06/21 PHP
怎么在Windows系统中搭建php环境
2013/08/31 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
2015/12/21 PHP
php中strtotime函数性能分析
2016/11/20 PHP
php+js实现点赞功能的示例详解
2020/08/07 PHP
JSChart轻量级图形报表工具(内置函数中文参考)
2010/10/11 Javascript
Jquery 一次处理多个ajax请求的代码
2011/09/02 Javascript
JavaScript高级程序设计(第3版)学习笔记11 内建js对象
2012/10/11 Javascript
JS记录用户登录次数实现代码
2014/01/15 Javascript
JS制作图形验证码实现代码
2020/10/19 Javascript
KnockoutJS 3.X API 第四章之数据控制流with绑定
2016/10/10 Javascript
vue 中自定义指令改变data中的值
2017/06/02 Javascript
Vue中计算属性computed的示例解读
2017/07/26 Javascript
vue代码分割的实现(codesplit)
2018/11/13 Javascript
Angular利用HTTP POST下载流文件的步骤记录
2020/07/26 Javascript
vue 通过绑定事件获取当前行的id操作
2020/07/27 Javascript
[03:12]完美世界DOTA2联赛PWL DAY7集锦
2020/11/06 DOTA
python中常用的各种数据库操作模块和连接实例
2014/05/29 Python
python if not in 多条件判断代码
2016/09/21 Python
Django接受前端数据的几种方法总结
2016/11/04 Python
解决uWSGI的编码问题详解
2017/03/24 Python
Python使用asyncio包处理并发详解
2017/09/09 Python
Python爬取qq空间说说的实例代码
2018/08/17 Python
python实现微信小程序自动回复
2018/09/10 Python
python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例
2020/03/10 Python
CSS3的calc()做响应模式布局的实现方法
2017/09/06 HTML / CSS
挪威户外活动服装和装备购物网站:Bergfreunde挪威
2016/10/20 全球购物
意大利宠物用品购物网站:Bauzaar
2018/09/15 全球购物
美国帽子俱乐部商店:Hat Club
2019/07/05 全球购物
优秀演讲稿范文
2013/12/29 职场文书
2014年党课学习材料
2014/05/11 职场文书
个人委托书怎么写
2014/09/17 职场文书
破坏寝室公物检讨书
2014/11/17 职场文书
儿园租房协议书范本
2014/12/02 职场文书
muduo TcpServer模块源码分析
2022/04/26 Redis