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变量作用范围实例分析
Jul 07 Python
简单实现python爬虫功能
Dec 31 Python
Python中使用haystack实现django全文检索搜索引擎功能
Aug 26 Python
python爬取拉勾网职位数据的方法
Jan 24 Python
解决Spyder中图片显示太小的问题
Apr 27 Python
python 列表,数组和矩阵sum的用法及区别介绍
Jun 28 Python
解决pyttsx3无法封装的问题
Dec 24 Python
java中的控制结构(if,循环)详解
Jun 26 Python
基于python求两个列表的并集.交集.差集
Feb 10 Python
Python3 webservice接口测试代码详解
Jun 23 Python
Python字符串对齐、删除字符串不需要的内容以及格式化打印字符
Jan 23 Python
python数据库批量插入数据的实现(executemany的使用)
Apr 30 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中看实例学正则表达式
2006/12/25 PHP
超级好用的一个php上传图片类(随机名,缩略图,加水印)
2010/06/30 PHP
php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE  eval()'d code error
2011/05/19 PHP
PHP使用CURL_MULTI实现多线程采集的例子
2014/07/29 PHP
php中Snoopy类用法实例
2015/06/19 PHP
PHP单态模式简单用法示例
2016/11/16 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
js中的时间转换—毫秒转换成日期时间的示例代码
2014/01/26 Javascript
window resize和scroll事件的基本优化思路
2014/04/29 Javascript
javascript实例--教你实现扑克牌洗牌功能
2014/05/15 Javascript
编写简单的jQuery提示插件
2014/12/21 Javascript
javascript函数式编程程序员的工具集
2015/10/11 Javascript
JS实现的仿QQ空间图片弹出效果代码
2016/02/23 Javascript
原生JS实现N级菜单的代码
2017/05/21 Javascript
webpack 2.x配置reactjs基本开发环境详解
2017/08/08 Javascript
浅谈Node异步编程的机制
2017/10/18 Javascript
详解vue路由篇(动态路由、路由嵌套)
2019/01/27 Javascript
vue-resource 拦截器interceptors使用详解
2021/01/18 Vue.js
[01:03:33]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
Hadoop中的Python框架的使用指南
2015/04/22 Python
在Django中编写模版节点及注册标签的方法
2015/07/20 Python
python爬虫实战之最简单的网页爬虫教程
2017/08/13 Python
Python中.join()和os.path.join()两个函数的用法详解
2018/06/11 Python
20行Python代码实现视频字符化功能
2020/04/13 Python
Python多线程thread及模块使用实例
2020/04/28 Python
属性与 @property 方法让你的python更高效
2020/09/21 Python
简单掌握CSS3中resize属性的用法
2016/04/01 HTML / CSS
《记承天寺夜游》教学反思
2014/02/16 职场文书
个人对照检查材料思想汇报(四风问题)
2014/09/25 职场文书
2015年幼儿园教研活动总结
2015/03/25 职场文书
义卖募捐活动总结
2015/05/09 职场文书
2016大学生求职自荐信范文
2016/01/28 职场文书
Golang中异常处理机制详解
2021/06/08 Golang
什么是动态刷新率DRR? Windows11动态刷新率功能介绍
2021/11/21 数码科技
SpringCloud超详细讲解Feign声明式服务调用
2022/06/21 Java/Android