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多进程同步简单实现代码
Apr 27 Python
Python使用Matplotlib实现雨点图动画效果的方法
Dec 23 Python
Python排序算法之选择排序定义与用法示例
Apr 29 Python
Python字符串逆序输出的实例讲解
Feb 16 Python
python 画二维、三维点之间的线段实现方法
Jul 07 Python
详解python itertools功能
Feb 07 Python
python encrypt 实现AES加密的实例详解
Feb 20 Python
Python通过两个dataframe用for循环求笛卡尔积
Apr 29 Python
Python面向对象多态实现原理及代码实例
Sep 16 Python
如何在python中处理配置文件代码实例
Sep 27 Python
python scipy 稀疏矩阵的使用说明
May 26 Python
Python绘画好看的星空图
Mar 17 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中::、->、self、$this几种操作符的区别介绍
2013/04/24 PHP
Yii核心组件AssetManager原理分析
2014/12/02 PHP
Laravel5中Cookie的使用详解
2017/05/03 PHP
基于php伪静态的实现方法解析
2020/07/31 PHP
JavaScript实现动态增加文件域表单
2009/02/12 Javascript
JS 文字符串转换unicode编码函数
2009/05/30 Javascript
JavaScript中Object和Function的关系小结
2009/09/26 Javascript
如何使用json在前后台进行数据传输实例介绍
2013/04/11 Javascript
导航跟随滚动条置顶移动示例代码
2013/09/11 Javascript
浅析jquery的作用与优势
2013/12/02 Javascript
使用js dom和jquery分别实现简单增删改
2014/09/11 Javascript
Node.js中HTTP模块与事件模块详解
2014/11/14 Javascript
jQuery实现鼠标滚轮动态改变样式或效果
2015/01/05 Javascript
js实现的tab标签切换效果代码分享
2015/08/25 Javascript
JS实现兼容各种浏览器的高级拖动方法完整实例【测试可用】
2016/06/21 Javascript
使用伪命名空间封装保护独自创建的对象方法
2016/08/04 Javascript
JavaScript输入框字数实时统计更新
2017/06/17 Javascript
Vue计算属性的使用
2017/08/04 Javascript
js原生日历的实例(推荐)
2017/10/31 Javascript
产制造追溯系统之通过微信小程序实现移动端报表平台
2019/06/03 Javascript
Python 使用PIL中的resize进行缩放的实例讲解
2018/08/03 Python
详解Python:面向对象编程
2019/04/10 Python
python multiprocessing模块用法及原理介绍
2019/08/20 Python
python制作抽奖程序代码详解
2021/01/15 Python
IE9对HTML5中部分属性不支持的原因分析
2014/10/15 HTML / CSS
编程用JAVA解析XML的方式
2013/07/07 面试题
程序员跳槽必看面试题总结
2013/06/28 面试题
政法学院毕业生求职信
2014/02/28 职场文书
幼儿园小班教师寄语
2014/04/03 职场文书
反对四风问题自我剖析材料
2014/09/29 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/10/28 职场文书
门市房租房协议书
2014/12/04 职场文书
2015年资料员工作总结
2015/04/25 职场文书
母婴行业实体、电商模式全面解析
2019/08/01 职场文书
怎样写好演讲稿题目?
2019/08/21 职场文书
使用Canvas绘制一个游戏人物属性图
2022/03/25 Javascript