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脚本
Feb 10 Python
python求pi的方法
Oct 08 Python
python+matplotlib绘制简单的海豚(顶点和节点的操作)
Jan 02 Python
Python字符串内置函数功能与用法总结
Apr 16 Python
基于MATLAB和Python实现MFCC特征参数提取
Aug 13 Python
python3.6生成器yield用法实例分析
Aug 23 Python
python计算二维矩形IOU实例
Jan 18 Python
python实现TCP文件传输
Mar 20 Python
Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)
May 11 Python
Python基于codecs模块实现文件读写案例解析
May 11 Python
浅谈keras中loss与val_loss的关系
Jun 22 Python
Python selenium实现断言3种方法解析
Sep 08 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
星际争霸, 教主第一视角, ZvT经典龙蛇演义
2020/03/02 星际争霸
在PHP中使用反射技术的架构插件使用说明
2010/05/18 PHP
PHP使用正则表达式清除超链接文本
2013/11/12 PHP
微信公众平台接口开发入门示例
2014/12/24 PHP
php获取错误信息的方法
2015/07/17 PHP
PHP支付系统设计与典型案例分享
2016/08/02 PHP
php实现遍历文件夹的方法汇总
2017/03/02 PHP
php 如何设置一个严格控制过期时间的session
2017/05/05 PHP
firefox中JS读取XML文件
2006/12/21 Javascript
Jquery+JSon 无刷新分页实现代码
2010/04/01 Javascript
JQuery select控件的相关操作实现代码
2012/09/14 Javascript
node.js中的socket.io入门实例
2014/04/26 Javascript
jQuery实现横向带缓冲的水平运动效果(附demo源码下载)
2016/01/29 Javascript
使用jQuery判断Div是否在可视区域的方法 判断div是否可见
2016/02/17 Javascript
购物车前端开发(jQuery和bootstrap3)
2016/08/27 Javascript
js弹性势能动画之抛物线运动实例详解
2017/07/27 Javascript
vue初尝试--项目结构(推荐)
2018/01/30 Javascript
vue项目前端埋点的实现
2019/03/06 Javascript
JS回调函数深入理解
2019/10/16 Javascript
python动态参数用法实例分析
2015/05/25 Python
手把手教你用python抢票回家过年(代码简单)
2018/01/21 Python
详解Python 数据库的Connection、Cursor两大对象
2018/06/25 Python
python opencv调用笔记本摄像头
2019/08/28 Python
Django 对IP访问频率进行限制的例子
2019/08/30 Python
PyTorch里面的torch.nn.Parameter()详解
2020/01/03 Python
使用html2canvas实现将html内容写入到canvas中生成图片
2020/01/03 HTML / CSS
英国女装网上商店:I Saw It First
2018/10/18 全球购物
简述索引存取方法的作用和建立索引的原则
2013/03/26 面试题
比较一下entity bean和session bean
2013/12/27 面试题
J2EE的优越性主要表现在哪些方面
2016/03/28 面试题
单位授权委托书范本
2014/09/26 职场文书
党员干部对十八届四中全会的期盼
2014/10/17 职场文书
大学军训的体会
2014/11/08 职场文书
Spring实现内置监听器
2021/07/09 Java/Android
Python爬取奶茶店数据分析哪家最好喝以及性价比
2022/09/23 Python
ubuntu开机后ROS程序自启动问题
2022/12/24 Servers