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高并发异步服务器核心库forkcore使用方法
Nov 26 Python
wxPython中文教程入门实例
Jun 09 Python
python遍历类中所有成员的方法
Mar 18 Python
基于python实现自动化办公学习笔记(CSV、word、Excel、PPT)
Aug 06 Python
python中从for循环延申到推导式的具体使用
Nov 29 Python
Python 简单计算要求形状面积的实例
Jan 18 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
Feb 25 Python
在keras下实现多个模型的融合方式
May 23 Python
新手学习Python2和Python3中print不同的用法
Jun 09 Python
Python字符串查找基本操作代码案例
Oct 27 Python
Python Http请求json解析库用法解析
Nov 28 Python
利用python做数据拟合详情
Nov 17 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
浅析linux下apache服务器的配置和管理
2013/08/10 PHP
php二分查找二种实现示例
2014/03/12 PHP
PHP同时连接多个mysql数据库示例代码
2014/03/17 PHP
从刷票了解获得客户端IP的方法
2015/09/21 PHP
PHP中类的自动加载的方法
2017/03/17 PHP
Yii 2.0在Grid中格式化时间方法示例
2017/06/06 PHP
JavaScript ECMA-262-3 深入解析.第三章.this
2011/09/28 Javascript
jquery 插件学习(一)
2012/08/06 Javascript
jquery 插件学习(五)
2012/08/06 Javascript
js实现网页自动刷新可制作节日倒计时效果
2014/05/27 Javascript
深入理解javascript中的立即执行函数(function(){…})()
2014/06/12 Javascript
Jquery对象和Dom对象的区别分析
2014/11/20 Javascript
javascript实现简单的贪吃蛇游戏
2015/03/31 Javascript
在JavaScript中call()与apply()区别
2016/01/22 Javascript
jQuery实现的倒计时效果实例小结
2016/04/16 Javascript
浅析Javascript中bind()方法的使用与实现
2016/05/30 Javascript
canvas实现手机端用来上传用户头像的代码
2016/10/20 Javascript
ES6中Generator与异步操作实例分析
2017/03/31 Javascript
js实现canvas保存图片为png格式并下载到本地的方法
2017/08/31 Javascript
vue3.0 CLI - 2.3 - 组件 home.vue 中学习指令和绑定
2018/09/14 Javascript
解决 viewer.js 动态更新图片导致无法预览的问题
2019/05/14 Javascript
vue+element表格导出为Excel文件
2019/09/26 Javascript
JavaScript Blob对象原理及用法详解
2020/10/14 Javascript
关于vue 项目中浏览器跨域的配置问题
2020/11/10 Javascript
[55:54]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python数据封装json格式数据
2018/03/04 Python
Python将图片转换为字符画的方法
2020/06/16 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
2018/12/24 Python
python实现简单日期工具类
2019/04/24 Python
大专计算机个人求职的自我评价
2013/10/21 职场文书
小学安全汇报材料
2014/08/14 职场文书
怎样写家长意见
2015/06/04 职场文书
中秋节主题班会
2015/08/14 职场文书
商务信函英语问候语
2015/11/10 职场文书
了解Redis常见应用场景
2021/06/23 Redis
ubuntu20.04虚拟机无法上网的问题及解决
2022/12/24 Servers