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 28 Python
python登录pop3邮件服务器接收邮件的方法
Apr 30 Python
python中copy()与deepcopy()的区别小结
Aug 03 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
Dec 16 Python
使用python去除图片白色像素的实例
Dec 12 Python
python之生成多层json结构的实现
Feb 27 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
Feb 28 Python
python requests包的request()函数中的参数-params和data的区别介绍
May 05 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
May 17 Python
安装python依赖包psycopg2来调用postgresql的操作
Jan 01 Python
Python中的np.argmin()和np.argmax()函数用法
Jun 02 Python
Django+Celery实现定时任务的示例
Jun 23 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 文件状态缓存带来的问题
2008/12/14 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
2015/10/10 PHP
php实现微信公众号无限群发
2015/10/11 PHP
Symfony2开发之控制器用法实例分析
2016/02/05 PHP
PHP制作登录异常ip检测功能的实例代码
2016/11/16 PHP
laravel 5.5 关闭token的3种实现方式
2019/10/24 PHP
利用JS延迟加载百度分享代码,提高网页速度
2013/07/01 Javascript
javascript(js)的小数点乘法除法问题详解
2014/03/07 Javascript
javascript实用方法总结
2015/02/06 Javascript
jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法(附demo源码下载)
2016/02/25 Javascript
jquery+ajax实现直接提交表单实例分析
2016/06/17 Javascript
JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法【附demo源码】
2016/08/19 Javascript
Vue.js双向绑定实现原理详解
2016/12/22 Javascript
详解Vue中一种简易路由传参办法
2017/09/15 Javascript
pm2发布node配置文件ecosystem.json详解
2019/05/15 Javascript
利用Vue实现一个markdown编辑器实例代码
2019/05/19 Javascript
VUE子组件向父组件传值详解(含传多值及添加额外参数场景)
2020/09/01 Javascript
vue项目中js-cookie的使用存储token操作
2020/11/13 Javascript
[01:06]DOTA2亚洲邀请赛专属珍藏-荧煌之礼
2017/03/24 DOTA
Python ljust rjust center输出
2008/09/06 Python
讲解Python中运算符使用时的优先级
2015/05/14 Python
用Python写一个无界面的2048小游戏
2016/05/24 Python
简单了解Python中的几种函数
2017/11/03 Python
人工智能最火编程语言 Python大战Java!
2017/11/13 Python
Python断言assert的用法代码解析
2018/02/03 Python
python模块导入的方法
2019/10/24 Python
Pretty Green美国:英式摇滚服饰风格代表品牌之一
2019/01/23 全球购物
在c#中using和new这两个关键字有什么意义
2013/05/19 面试题
运动会广播稿20字
2014/02/18 职场文书
教师自我鉴定范文
2014/03/20 职场文书
《翻越远方的大山》教学反思
2014/04/13 职场文书
竞聘上岗演讲
2014/05/19 职场文书
2014超市双十一活动策划方案
2014/09/29 职场文书
王金山在党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
优秀少先队员事迹材料
2014/12/24 职场文书
工伤认定行政答辩状
2015/05/22 职场文书