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 isinstance判断对象类型
Sep 06 Python
Python实现在线程里运行scrapy的方法
Apr 07 Python
浅谈Python生成器generator之next和send的运行流程(详解)
May 08 Python
详谈Python高阶函数与函数装饰器(推荐)
Sep 30 Python
Python简单实现socket信息发送与监听功能示例
Jan 03 Python
Numpy掩码式数组详解
Apr 17 Python
Python实现的服务器示例小结【单进程、多进程、多线程、非阻塞式】
May 23 Python
分析运行中的 Python 进程详细解析
Jun 22 Python
python腾讯语音合成实现过程解析
Aug 01 Python
Django将默认的SQLite更换为MySQL的实现
Nov 18 Python
python 实现两个线程交替执行
May 02 Python
python中加背景音乐如何操作
Jul 19 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内存溢出问题的解决方法
2013/06/25 PHP
PHP独立Session数据库存储操作类分享
2014/06/11 PHP
Symfony的安装和配置方法
2016/03/17 PHP
BOOM vs RR BO5 第四场 2.14
2021/03/10 DOTA
Web版彷 Visual Studio 2003 颜色选择器
2007/01/09 Javascript
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
2011/03/03 Javascript
Jquery:ajax实现翻页无刷新功能代码
2013/08/05 Javascript
javascript中的变量作用域以及变量提升详细介绍
2013/10/24 Javascript
Javascript中的Array数组对象详谈
2014/03/03 Javascript
在JavaScript中处理数组之reverse()方法的使用
2015/06/09 Javascript
js电话号码验证方法
2015/09/28 Javascript
15个常用的jquery代码片段
2015/12/19 Javascript
jQuery代码实现实时获取时间
2017/01/29 Javascript
详解nodejs express下使用redis管理session
2017/04/24 NodeJs
vue源码入口文件分析(推荐)
2018/01/30 Javascript
微信小程序自定义可滑动顶部TabBar选项卡实现页面切换功能示例
2019/05/14 Javascript
Element-UI中关于table表格的那些骚操作(小结)
2019/08/15 Javascript
解决vue字符串换行问题(绝对管用)
2020/08/06 Javascript
Python-基础-入门 简介
2014/08/09 Python
分享一下Python 开发者节省时间的10个方法
2015/10/02 Python
Python max内置函数详细介绍
2016/11/17 Python
Python装饰器原理与用法分析
2018/04/30 Python
Tensorflow使用tfrecord输入数据格式
2018/06/19 Python
使用OpCode绕过Python沙箱的方法详解
2019/09/03 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
2019/10/06 Python
Python自带的IDE在哪里
2020/07/01 Python
集世界奢侈品和设计师品牌的意大利精品买手店:Tessabit
2019/08/17 全球购物
会计顶岗实习心得
2014/01/25 职场文书
工程招投标邀请书
2014/01/30 职场文书
《桂林山水》教学反思
2014/02/08 职场文书
纪检干部现实表现材料
2014/08/21 职场文书
公司门卫岗位职责
2015/04/13 职场文书
感恩父母主题班会
2015/08/12 职场文书
2019单位介绍信怎么写
2019/06/24 职场文书
redis 解决库存并发问题实现数量控制
2022/04/08 Redis
Golang 实现WebSockets
2022/04/24 Golang