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 23 Python
介绍Python的Urllib库的一些高级用法
Apr 30 Python
python 打印直角三角形,等边三角形,菱形,正方形的代码
Nov 21 Python
python reverse反转部分数组的实例
Dec 13 Python
Kears+Opencv实现简单人脸识别
Aug 28 Python
使用Django搭建web服务器的例子(最最正确的方式)
Aug 29 Python
python 协程中的迭代器,生成器原理及应用实例详解
Oct 28 Python
python实现人像动漫化的示例代码
May 17 Python
Python控制台实现交互式环境执行
Jun 09 Python
Python使用pycharm导入pymysql教程
Sep 16 Python
pandas抽取行列数据的几种方法
Dec 13 Python
python3 googletrans超时报错问题及翻译工具优化方案 附源码
Dec 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脚本中include文件出错解决方法
2008/11/20 PHP
PHP 下载文件时自动添加bom头的方法实例
2014/01/10 PHP
php使用多个进程同时控制文件读写示例
2014/02/28 PHP
php简单操作mysql数据库的类
2015/04/16 PHP
PHP+ajax实现获取新闻数据简单示例
2018/05/08 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
2020/04/04 PHP
一个JavaScript继承的实现
2006/10/24 Javascript
基于jQuery的树控件实现代码(asp.net+json)
2010/07/11 Javascript
Three.js源码阅读笔记(基础的核心Core对象)
2012/12/27 Javascript
解决Jquery load()加载GB2312页面时出现乱码的两种方案
2013/09/10 Javascript
jQuery动画效果animate和scrollTop结合使用实例
2014/04/02 Javascript
简单介绍JavaScript中字符串创建的基本方法
2015/07/07 Javascript
基于jquery实现的仿优酷图片轮播特效代码
2016/01/13 Javascript
jquery模拟多级复选框效果的简单实例
2016/06/08 Javascript
jquery mobile移动端幻灯片滑动切换效果
2020/04/15 Javascript
js实现年月日表单三级联动
2020/04/17 Javascript
vue-cli webpack模板项目搭建及打包时路径问题的解决方法
2018/02/26 Javascript
简单了解vue.js数组的常用操作
2019/06/17 Javascript
JavaScript创建表格的方法
2020/04/13 Javascript
vue路由跳转传递参数的方式总结
2020/05/10 Javascript
vue添加锚点,实现滚动页面时锚点添加相应的class操作
2020/08/10 Javascript
[02:54]DOTA2英雄基础教程 暗影牧师戴泽
2013/12/05 DOTA
Python处理菜单消息操作示例【基于win32ui模块】
2018/05/09 Python
pandas 实现字典转换成DataFrame的方法
2018/07/04 Python
程序员的七夕用30行代码让Python化身表白神器
2019/08/07 Python
Python3离线安装Requests模块问题
2019/10/13 Python
Windows 下python3.8环境安装教程图文详解
2020/03/11 Python
PyCharm 在Windows的有用快捷键详解
2020/04/07 Python
爬虫代理的cookie如何生成运行
2020/09/22 Python
乐天旅游台湾网站:Rakuten Travel TW
2017/06/01 全球购物
为有想象力的人提供的生活方式商店:Firebox
2018/06/04 全球购物
几道数据库的面试题或笔试题
2014/05/31 面试题
个人四风问题对照检查材料
2014/09/26 职场文书
党的群众路线教育实践活动总结大会主持词
2014/10/30 职场文书
赢在中国观后感
2015/06/02 职场文书
节水宣传标语口号
2015/12/26 职场文书