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抓taobao图片爬虫
Oct 26 Python
使用Python编写简单的端口扫描器的实例分享
Dec 18 Python
使用Python简单的实现树莓派的WEB控制
Feb 18 Python
Python简单实现控制电脑的方法
Jan 22 Python
python的依赖管理的实现
May 14 Python
Python中Numpy mat的使用详解
May 24 Python
详解Python中正则匹配TAB及空格的小技巧
Jul 26 Python
python读取yaml文件后修改写入本地实例
Apr 27 Python
Python无损压缩图片的示例代码
Aug 06 Python
Python利用pip安装tar.gz格式的离线资源包
Sep 14 Python
安装pyinstaller遇到的各种问题(小结)
Nov 20 Python
Python Numpy库的超详细教程
Apr 06 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
用php的ob_start来生成静态页面的方法分析
2011/03/09 PHP
排序算法之PHP版快速排序、冒泡排序
2014/04/09 PHP
php异常处理方法实例汇总
2015/06/24 PHP
删除PHP数组中的重复元素的实现代码
2017/04/10 PHP
Yii框架页面渲染操作实例详解
2019/07/19 PHP
Laravel如何同时连接多个数据库详解
2019/08/13 PHP
Aster vs Newbee BO5 第三场2.19
2021/03/10 DOTA
在表单提交前进行验证的几种方式整理
2013/07/31 Javascript
回车直接实现点击某按钮的效果即触发单击事件
2014/02/27 Javascript
js实时获取并显示当前时间的方法
2015/07/31 Javascript
JS+DIV+CSS实现的经典标签切换效果代码
2015/09/14 Javascript
深入理解MVC中的时间js格式化
2016/05/19 Javascript
Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法
2016/06/23 Javascript
浅析JavaScript中作用域和作用域链
2016/12/06 Javascript
Bootstrap基本组件学习笔记之input输入框组(9)
2016/12/07 Javascript
jquery插件ContextMenu设置右键菜单
2017/03/13 Javascript
springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项
2017/04/23 Javascript
JavaScript如何对图片进行黑白化
2018/04/10 Javascript
Vue前端项目部署IIS的实现
2020/01/06 Javascript
[03:12]TI9战队档案 - Virtus Pro
2019/08/20 DOTA
python下如何让web元素的生成更简单的分析
2008/07/17 Python
Python实用日期时间处理方法汇总
2015/05/09 Python
Python竟能画这么漂亮的花,帅呆了(代码分享)
2017/11/15 Python
pandas带有重复索引操作方法
2018/06/08 Python
python读取excel指定列数据并写入到新的excel方法
2018/07/10 Python
flask框架实现连接sqlite3数据库的方法分析
2018/07/16 Python
python写程序统计词频的方法
2019/07/29 Python
详解Python yaml模块
2020/09/23 Python
从一次项目重构说起CSS3自定义变量在项目的使用方法
2021/03/01 HTML / CSS
Hotels.com香港酒店网:你的自由行酒店订房专家
2018/01/22 全球购物
财务会计人员求职的自我评价
2014/01/13 职场文书
秋季运动会表扬稿
2014/01/16 职场文书
小学生关于梦想的演讲稿
2014/08/22 职场文书
公司感谢信范文
2015/01/22 职场文书
JavaScript实现优先级队列
2021/12/06 Javascript
详解MySql中InnoDB存储引擎中的各种锁
2022/02/12 MySQL