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是编译运行的验证方法
Jan 30 Python
Python Web框架Flask下网站开发入门实例
Feb 08 Python
Python中的lstrip()方法使用简介
May 19 Python
详解C++编程中一元运算符的重载
Jan 19 Python
Python遍历文件夹和读写文件的实现代码
Aug 28 Python
基于循环神经网络(RNN)实现影评情感分类
Mar 26 Python
Python解析、提取url关键字的实例详解
Dec 17 Python
Python统计一个字符串中每个字符出现了多少次的方法【字符串转换为列表再统计】
May 05 Python
Python使用Pandas读写Excel实例解析
Nov 19 Python
Python使用Tkinter实现滚动抽奖器效果
Jan 06 Python
python保留小数位的三种实现方法
Jan 07 Python
Django集成富文本编辑器summernote的实现步骤
May 31 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封装CURL
2019/03/06 PHP
超轻量级的基于jquery的三级展开列表
2011/04/26 Javascript
深入理解JavaScript系列(8) S.O.L.I.D五大原则之里氏替换原则LSP
2012/01/15 Javascript
javascript的字符串按引用复制和传递,按值来比较介绍与应用
2012/12/28 Javascript
函数式 JavaScript(一)简介
2014/07/07 Javascript
javascript去除字符串左右两端的空格
2015/02/05 Javascript
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
2015/11/11 Javascript
WordPress中利用AJAX技术进行评论提交的实现示例
2016/01/12 Javascript
解析JavaScript中的字符串类型与字符编码支持
2016/06/24 Javascript
php 修改密码实现代码
2017/05/24 Javascript
webpack学习教程之publicPath路径问题详解
2017/06/17 Javascript
JQuery EasyUI 结合ztrIee的后台页面开发实例
2017/09/01 jQuery
vue+webpack模拟后台数据的示例代码
2018/07/26 Javascript
分享5个小技巧让你写出更好的 JavaScript 条件语句
2018/10/20 Javascript
vue路由对不同界面进行传参及跳转的总结
2019/04/20 Javascript
js实现图片无缝循环轮播
2019/10/28 Javascript
JQuery常用选择器功能与用法实例分析
2019/12/23 jQuery
python3.0 字典key排序
2008/12/24 Python
Ubuntu 下 vim 搭建python 环境 配置
2017/06/12 Python
python使用opencv读取图片的实例
2017/08/17 Python
使用Python如何测试InnoDB与MyISAM的读写性能
2018/09/18 Python
python实现浪漫的烟花秀
2019/01/30 Python
详解Django项目中模板标签及模板的继承与引用(网站中快速布置广告)
2019/03/27 Python
python gensim使用word2vec词向量处理中文语料的方法
2019/07/05 Python
python通过robert、sobel、Laplace算子实现图像边缘提取详解
2019/08/21 Python
python解析命令行参数的三种方法详解
2019/11/29 Python
python下载卫星云图合成gif的方法示例
2020/02/18 Python
Python基于模块Paramiko实现SSHv2协议
2020/04/28 Python
美国女士泳装店:Swimsuits For All
2017/03/02 全球购物
彪马法国官网:PUMA法国
2019/12/15 全球购物
创建索引时需要注意的事项
2013/05/13 面试题
关于打架的检讨书
2014/01/17 职场文书
《骆驼和羊》教学反思
2014/02/27 职场文书
就业推荐表自我鉴定范文
2014/03/21 职场文书
降消项目实施方案
2014/03/30 职场文书
大学优秀班集体申报材料
2014/05/23 职场文书