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实现rsa算法代码
Feb 17 Python
Python算法之图的遍历
Nov 16 Python
Python实现GUI学生信息管理系统
Apr 05 Python
Python 使用类写装饰器的小技巧
Sep 30 Python
python 重命名轴索引的方法
Nov 10 Python
python重试装饰器的简单实现方法
Jan 31 Python
python 读写文件包含多种编码格式的解决方式
Dec 20 Python
python 截取XML中bndbox的坐标中的图像,另存为jpg的实例
Mar 10 Python
python如何导入依赖包
Jul 13 Python
pandas 数据类型转换的实现
Dec 29 Python
python 实现百度网盘非会员上传超过500个文件的方法
Jan 07 Python
Python基础之字符串格式化详解
Apr 21 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
深入掌握include_once与require_once的区别
2013/06/17 PHP
163的邮件用phpmailer发送(实例详解)
2013/06/24 PHP
从PHP $_SERVER相关参数判断是否支持Rewrite模块
2013/09/26 PHP
浅析PHP文件下载原理
2014/12/25 PHP
CodeIgniter连贯操作的底层原理分析
2016/05/17 PHP
解决 FireFox 下[使用event很麻烦] 的问题.
2006/08/22 Javascript
JavaScript 创建运动框架的实现代码
2013/05/08 Javascript
JS和Jquery获取和修改label的值的示例代码
2014/01/15 Javascript
jquery插件开发之实现google+圈子选择功能
2014/03/10 Javascript
利用jQuery中的ajax分页实现代码
2016/02/25 Javascript
JavaScript中实现无缝滚动、分享到侧边栏实例代码
2016/04/06 Javascript
jQuery自制提示框tooltip改进版
2016/08/01 Javascript
探索Javascript中this的奥秘
2016/12/11 Javascript
vue中$refs的用法及作用详解
2018/04/24 Javascript
微信小程序实现弹出层效果
2020/05/26 Javascript
详解Vue源码之数据的代理访问
2018/12/11 Javascript
VUE项目中加载已保存的笔记实例方法
2019/09/14 Javascript
微信小程序 导入图标实现过程详解
2019/10/11 Javascript
微信小程序实现禁止分享代码实例
2019/10/19 Javascript
ES6扩展运算符和rest运算符用法实例分析
2020/05/23 Javascript
Python实现生成简单的Makefile文件代码示例
2015/03/10 Python
python正则表达式之作业计算器
2016/03/18 Python
对python while循环和双重循环的实例详解
2019/08/23 Python
简单了解python协程的相关知识
2019/08/31 Python
Scrapy框架实现的登录网站操作示例
2020/02/06 Python
C++和python实现阿姆斯特朗数字查找实例代码
2020/12/07 Python
html5的画布canvas——画出简单的矩形、三角形实例代码
2013/06/09 HTML / CSS
Desigual英国官网:在线购买原创服装
2018/03/09 全球购物
德国网上超市:myTime.de
2019/08/26 全球购物
this关键字的作用
2016/01/30 面试题
硅酸盐工业控制专业应届生求职信
2013/11/02 职场文书
电气工程及自动化专业自荐书范文
2013/12/18 职场文书
高校群众路线教育实践活动剖析材料
2014/10/10 职场文书
工伤劳动仲裁代理词
2015/05/25 职场文书
教师信息技术学习心得体会
2016/01/21 职场文书
解决Springboot PostMapping无法获取数据的问题
2022/05/06 Java/Android