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按照多个字符对字符串进行分割的方法
Mar 17 Python
PHP网页抓取之抓取百度贴吧邮箱数据代码分享
Apr 13 Python
Python搜索引擎实现原理和方法
Nov 27 Python
关于Python正则表达式 findall函数问题详解
Mar 22 Python
python文件操作之批量修改文件后缀名的方法
Aug 10 Python
将Django项目部署到CentOs服务器中
Oct 18 Python
Python文件操作方法详解
Feb 09 Python
Python利用逻辑回归分类实现模板
Feb 15 Python
如何在Anaconda中打开python自带idle
Sep 21 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
Feb 01 Python
Python爬取你好李焕英豆瓣短评生成词云的示例代码
Feb 24 Python
使用Python获取字典键对应值的方法
Apr 26 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
session 的生命周期是多长
2006/10/09 PHP
php下过滤html代码的函数 提高程序安全性
2010/03/02 PHP
PHP、Python和Javascript的装饰器模式对比
2015/02/03 PHP
js href的用法
2010/05/13 Javascript
C#中TrimStart,TrimEnd,Trim在javascript上的实现
2011/01/17 Javascript
js控制输入框获得和失去焦点时状态显示的方法
2015/01/30 Javascript
jQuery实现首页顶部可伸缩广告特效代码
2015/04/15 Javascript
jquery使用经验小结
2015/05/20 Javascript
基于bootstrap3和jquery的分页插件
2015/07/31 Javascript
jquery实现仿新浪微博带动画效果弹出层代码(可关闭、可拖动)
2015/10/12 Javascript
jQuery Validate表单验证深入学习
2015/12/18 Javascript
vue.js整合vux中的上拉加载下拉刷新实例教程
2018/01/09 Javascript
node.js博客项目开发手记
2018/03/16 Javascript
详解@Vue/Cli 3 Invalid Host header 错误解决办法
2019/01/02 Javascript
vue进入页面时不在顶部,检测滚动返回顶部按钮问题及解决方法
2019/10/30 Javascript
JQuery实现折叠式菜单的详细代码
2020/06/03 jQuery
vue 如何从单页应用改造成多页应用
2020/10/23 Javascript
Python标准库inspect的具体使用方法
2017/12/06 Python
python 借助numpy保存数据为csv格式的实现方法
2018/07/04 Python
将自己的数据集制作成TFRecord格式教程
2020/02/17 Python
Python 实现Image和Ndarray互相转换
2020/02/19 Python
解决pip安装的第三方包在PyCharm无法导入的问题
2020/10/15 Python
CSS3中border-radius属性设定圆角的使用技巧
2016/05/10 HTML / CSS
澳大利亚手表品牌:Time IV Change
2018/10/06 全球购物
澳大利亚运动鞋零售商:The Athlete’s Foot
2018/11/04 全球购物
装饰活动策划方案
2014/02/11 职场文书
信息管理应届生求职信
2014/03/07 职场文书
婚前协议书范本
2014/04/15 职场文书
中层干部竞聘演讲稿
2014/05/15 职场文书
公司保洁员岗位职责
2015/02/13 职场文书
安全保证书怎么写
2015/02/28 职场文书
求职信范文怎么写
2015/03/19 职场文书
环保建议书作文500字
2015/09/14 职场文书
python 如何将两个实数矩阵合并为一个复数矩阵
2021/05/19 Python
如何使用PostgreSQL进行中文全文检索
2021/05/27 PostgreSQL
微信告警的zabbix监控系统 监控整个NGINX集群
2022/04/18 Servers