Python用requests库爬取返回为空的解决办法


Posted in Python onFebruary 21, 2021

首先介?一下我??用360搜索派取城市排名前20。
我们爬取的网址:https://baike.so.com/doc/24368318-25185095.html

我们要爬取的内容:

Python用requests库爬取返回为空的解决办法

html字段:

Python用requests库爬取返回为空的解决办法

robots协议:

Python用requests库爬取返回为空的解决办法

现在我们开始用python IDLE 爬取

Python用requests库爬取返回为空的解决办法

import requests
r = requests.get("https://baike.so.com/doc/24368318-25185095.html")
r.status_code
r.text

结果分析,我们可以成功访问到该网页,但是得不到网页的结果。被360搜索识别,我们将headers修改。

Python用requests库爬取返回为空的解决办法

输出有个小插曲,网页内容很多,我是想将前500个字符输出,第一次格式错了

import requests
headers = {
  'Cookie':'OCSSID=4df0bjva6j7ejussu8al3eqo03',
  'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
         '(KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',
}
r = requests.get("https://baike.so.com/doc/24368318-25185095.html", headers = headers)
r.status_code
r.text

接着我们对需要的内容进行爬取,用(.find)方法找到我们内容位置,用(.children)下行遍历的方法对内容进行爬取,用(isinstance)方法对内容进行筛选:

import requests
from bs4 import BeautifulSoup
import bs4
headers = {
  'Cookie':'OCSSID=4df0bjva6j7ejussu8al3eqo03',
  'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
         '(KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',
}
r = requests.get("https://baike.so.com/doc/24368318-25185095.html", headers = headers)
r.status_code
r.encoding = r.apparent_encoding
soup = BeautifulSoup(r.text, "html.parser")
for tr in soup.find('tbody').children:
	if isinstance(tr, bs4.element.Tag):
		tds = tr('td')
		print([tds[0].string, tds[1].string, tds[2].string])

得到结果如下:

Python用requests库爬取返回为空的解决办法

修改输出的数目,我们用Clist列表来存取所有城市的排名,将前20个输出代码如下:

import requests
from bs4 import BeautifulSoup
import bs4
Clist = list() #存所有城市的列表
headers = {
  'Cookie':'OCSSID=4df0bjva6j7ejussu8al3eqo03',
  'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
         '(KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',
}
r = requests.get("https://baike.so.com/doc/24368318-25185095.html", headers = headers)
r.encoding = r.apparent_encoding #将html的编码解码为utf-8格式
soup = BeautifulSoup(r.text, "html.parser") #重新排版
for tr in soup.find('tbody').children:   #将tbody标签的子列全部读取
	if isinstance(tr, bs4.element.Tag):  #筛选tb列表,将有内容的筛选出啦
	  tds = tr('td')
	  Clist.append([tds[0].string, tds[1].string, tds[2].string])
for i in range(21):
  print(Clist[i])

最终结果:

Python用requests库爬取返回为空的解决办法

到此这篇关于Python用requests库爬取返回为空的解决办法的文章就介绍到这了,更多相关Python requests返回为空内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python的函数嵌套的使用方法
Jan 24 Python
python让图片按照exif信息里的创建时间进行排序的方法
Mar 16 Python
利用Python的Flask框架来构建一个简单的数字商品支付解决方案
Mar 31 Python
Python实现判断字符串中包含某个字符的判断函数示例
Jan 08 Python
Python编写一个优美的下载器
Apr 15 Python
Django objects的查询结果转化为json的三种方式的方法
Nov 07 Python
python 实现图片旋转 上下左右 180度旋转的示例
Jan 24 Python
Python进阶之@property动态属性的实现
Apr 01 Python
Django认证系统实现的web页面实现代码
Aug 12 Python
scrapy框架携带cookie访问淘宝购物车功能的实现代码
Jul 07 Python
Python Celery异步任务队列使用方法解析
Aug 10 Python
上帝为你开了一扇窗之Tkinter常用函数详解
Jun 02 Python
python利用proxybroker构建爬虫免费IP代理池的实现
Feb 21 #Python
python实现图片转字符画的完整代码
Feb 21 #Python
利用Python实现最小二乘法与梯度下降算法
Feb 21 #Python
Scrapy实现模拟登录的示例代码
Feb 21 #Python
scrapy-splash简单使用详解
Feb 21 #Python
详解使用scrapy进行模拟登陆三种方式
Feb 21 #Python
利用Python如何画一颗心、小人发射爱心
Feb 21 #Python
You might like
ecshop 批量上传(加入自定义属性)
2012/03/20 PHP
destoon后台网站设置变成空白的解决方法
2014/06/21 PHP
php实现判断访问来路是否为搜索引擎机器人的方法
2015/04/15 PHP
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
JavaScript网页定位详解
2014/01/13 Javascript
详解JavaScript语法对{}处理的坑爹之处
2014/06/05 Javascript
JavaScript实现的一个日期格式化函数分享
2014/12/06 Javascript
学习JavaScript设计模式(多态)
2015/11/25 Javascript
快速掌握Node.js中setTimeout和setInterval的使用方法
2016/03/21 Javascript
js控制li的隐藏和显示实例代码
2016/10/15 Javascript
JavaScript实现使用Canvas绘制图形的基本教程
2016/10/27 Javascript
jQuery中的一些小技巧
2017/01/18 Javascript
利用node.js制作命令行工具方法教程(一)
2017/06/22 Javascript
微信小程序progress组件使用详解
2018/01/31 Javascript
快速解决Vue项目在IE浏览器中显示空白的问题
2018/09/04 Javascript
vue实现几秒后跳转新页面代码
2020/09/09 Javascript
[02:53]DOTA2亚洲邀请赛 NewBee战队巡礼
2015/02/03 DOTA
[01:30:55]VG vs Mineski Supermajor 败者组 BO3 第三场 6.6
2018/06/07 DOTA
使用Python导出Excel图表以及导出为图片的方法
2015/11/07 Python
解决Python requests 报错方法集锦
2017/03/19 Python
Python获取SQLite查询结果表列名的方法
2017/06/21 Python
Python查询IP地址归属完整代码
2017/06/21 Python
在python3环境下的Django中使用MySQL数据库的实例
2017/08/29 Python
对python For 循环的三种遍历方式解析
2019/02/01 Python
python多线程调用exit无法退出的解决方法
2019/02/18 Python
django将网络中的图片,保存成model中的ImageField的实例
2019/08/07 Python
Python绘制全球疫情变化地图的实例代码
2020/04/20 Python
如何搭建pytorch环境的方法步骤
2020/05/06 Python
Django视图、传参和forms验证操作
2020/07/15 Python
pandas使用函数批量处理数据(map、apply、applymap)
2020/11/27 Python
input file上传文件样式支持html5的浏览器解决方案
2012/11/14 HTML / CSS
公司股权转让协议书
2014/04/12 职场文书
优秀教师个人材料
2014/12/15 职场文书
2015年幼儿园德育工作总结
2015/05/25 职场文书
解析laravel使用workerman用户交互、服务器交互
2021/04/28 PHP
MySQL如何构建数据表索引
2021/05/13 MySQL