Python爬虫爬取数据输入不了(python 爬虫获取不到正文)
python爬虫程序有问题
IOError就说明你抓取的URL连接失效,在迟察搏getpicture里加一个try except,无法打开链接时,
没有办法,继续执行下一个Url
import?sys
????????try:
???????????码祥?urllib.urlretrieve(pictureurl,'%s.jpg'?%x)
????????except:
????????????print?没祥"Unexpected?error:",?sys.exc_info()[0]
python用通用代码爬取,没有反应,该如何处理?
目前大概的看,有两处问题。
第一处,你的try语句里的except语句后面没有跟上异常类(比如TypeError),所以根本没起到捕获异常的作用。
第二处,这是在Python的交互式界面,不需要使用if __name__语句判断当前是否作为主模块调用,这种语法是在编译器里有的。
所以你定义厅闭完getHTMLtext函数后,按回车键扮升裂,另起一行,从【】开始,直接使用命令getHTMLtext('')就调用函数就行
你试试看还笑圆行不行,如果还有问题再调整
如何用Python爬取数据?
方法/步骤
在做爬取数据之前,你需要下载安耐猛装两个东西,一个是urllib,另外一个是python-docx。
然后在python的编辑器中输入import选项,提供这两个库的服务
urllib主要负责抓取网页的数据,单纯的抓取网页数据其实很简单,输入如图所示的命令,后面带链接即可。
抓取下来了,还不算,必须要进行读取,否则无效。
5
接下来就是抓码了,不转码是完成不了保存的,将读取的函数read转码。再随便标记一个比如XA。
6
最后再输入三句,第一句的意思是新建一个空白的word文档。
第二句的意思是在文档中添加正文段落,将变量XA抓取下来的东西导进去。
第三句的意思是保存文档docx,名字在括号里面。
7
这个爬下来的是源代码,如果还需要筛选的话需要自己去添加各种正则表达式。
python爬虫爬取不出信息
Python爬虫程序本身没有问题,但是却爬取不了数据主要原因如下:
1.对方有反爬程序
几乎所网站为了防止一些恶意抓取,会设置反爬程序,你会发现明明很多数据显滑伍示在浏览器上,但是却抓取不出信胡或来。
2.伪装方式没有绕过目标网站反爬
网站都有反爬虫机制做仔,防止爬取数据,爬虫想要爬取数据,就需要隐藏自身的身份,伪装成用户的身份进行访问,如果没有伪装好,被检测到爬虫,也是被会限制的。比如请求头没有设置好,Cookie问题等等。
3.IP被限制
爬虫除了IP所有数据都可以伪装,当你的IP访问次数过多之后,就会被限制住,再也无法访问了。这个时候就需要带入ip代理池了。
python 爬虫 某些网站数据不能爬什么原因
有些网站做了防爬虫机制。
你可以利用webdriver来模拟人的访问进行爬数据。
http_user_agent字段内容异常
爬虫
HTTP请求头中的User-Agent字段
?
字符搬运工-蓝天
原创
关注
0点赞·502人阅读
引言
当我们使用python爬虫爬取数据时,经常会遇到爬取请求拒绝的问题,通过查看请求信息,我们会发现,一般写的爬虫会默认告诉服务器自己发送了一个Python爬取请求,而一般网站是不允许被爬虫访问的,可能是因为会涉及到商业问题。最后,通过更改User-Agent字段就可以轻易骗过该网站。
那么User-Agent到底是什么呢?
User-Agent会告诉网站服务器,访问者是通过什么工具来请求的,如果是爬虫请求,一般会拒绝,如果是用户浏览器,就会应答。
User-Agent字段
1. 基本格式
我们在Chrome内核的浏览器中查看User-Agent的结果如下:轿碧
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3100.0 Safari/537.36
登录后复制
User-Agent的通常格式如下:
Mozilla/5.0 (平台) 引擎版本 浏览器版本号
登录后复制
2. 第一部分:Mozilla/5.0
历史上各种版本的浏览器互相竞争,当时想获得图文并茂的网页,就必须宣称自己是 Mozilla 浏览器。由此导致如今User-Agent里通常都带有Mozilla字样,出于对历史的尊重,大家都会默认填写该部分。
3. 第二部分:平台
平台这部分可由多个字符串组成,用英文半州滚角分号分开。
Windows系统平台这部分内容如下:
Windows NT 5.0 // 如 Windows 2000
Windows NT 5.1 // 如 Windows XP
Windows NT 6.0 // 如 Windows Vista
Windows NT 6.1 // 如 Windows 7
Windows NT 6.2 // 如 Windows 8
Windows NT 6.3 // 如 Windows 8.1
Windows NT 10.0 // 如 Windows 10
Win64; x64 // Win64 on x64
WOW64 // Win32 on x64
登录后复制
其中,Windows NT 10.0是指我使用的操作系统的版本,比如我使用的win10对应的就是Windows NT 10.0,如果我使用win7对应的就是Windows NT 6.1。Win64; x64是指我的操作系统是64位的。
Linux系统平台这部分内容如下:
X11; Linux i686; // Linux 桌面,i686 版本
X11; Linux x86_64; // Linux 桌面,x86_64 版本
X11; Linux i686 on x86_64 // Linux 桌面,运行在 x86_64 的 i686 版本
登录后复制
macOS系统平台这部分内容如下:
Macintosh; Intel Mac OS X 10_9_0 // Intel x86 或者 x86_64
Macintosh; PPC Mac OS X 10_9_0 // PowerPC
Macintosh; Intel Mac OS X 10.12; // 不用下划线,用点
登录后复制
4. 第三部分:引擎版本
历史上,苹果依靠了WebKit内核开发出Safari浏览器,WebKit包含了WebCore引擎,而WebCore又从KHTML衍生而来。由于历史原因,KHTML引册帆余擎需要声明自己是“类似Gecko”的,因此引擎部分通常写为:AppleWebKit/537.36 (KHTML, like Gecko)…Safari/537.36。再后来,Google开发Chrome也是用了WebKit内核,于是也跟着这么写。借用Littern的一句话:“Chrome 希望能得到为Safari编写的网页,于是决定装成Safari,Safari使用了WebKit渲染引擎,而WebKit呢又伪装自己是KHTML,KHTML呢又是伪装成Gecko的。同时所有的浏览器又都宣称自己是Mozilla。”。不过,后来Chrome 28某个版本改用了blink内核,但还是保留了这些字符串。而且,最近的几十个版本中,这部分已经固定,没再变过。