了解更多关注微信公众号“木下学Python”吧~,获取更多爬虫示例吧
原文:https://blog.csdn.net/zjkpy_5/article/details/80887981
1.爬虫程序运行没问题,但没显示结果或结果不全
1)有些网站针对每一个ip,单位时间内只能访问一定次数,至于单位时间是多少看网站规定吧,超过这个次数就不能访问爬去 了,就只有等了,等多久,看那个网站的规定吧
2)可以运行,没有结果,那要么是选择器问题,换一个选择器;要么是选择器里面的内容有问题导致没有
爬取到结果
2.请求头 报错
HTTP请求包括:一个请求行,若干请求头,实体内容
1、http请求细节----请求行:
1)请求方式:post、get、head、options、delete、trace、put;
2)常用post、get
3)post、get区别:表现在数据传递上
A)get方式可在url地址后以?形式带上交给服务器的数据,多个数据之间以&分隔,但数据容量不能超过1k;
B)post可在请求的实体中向服务器发送请求,传送数据量无限制
2、http请求头
Accept:告诉服务器 客户机支持的数据类型
Accept-Charset:告诉服务器,客户机采用的编码
Accept-Encoding:告诉服务器,客户机支持的压缩格式
Accept-Language:客户机的语言环境
Host:客户机通过这个头告诉服务器想访问的主机
3、例如:headers = {
'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
}
:两边都分别用引号括起来,开头不允许有空格
4、有些有着反爬机制的网站,请求头要写全,否则会被屏蔽,或者报错
3.抓取url
最好用.xpath
4.UnicodeEncodeError
在写入文本中是会出现,用try:except:pass掉
5.集合减集合
set(link_list) - set(exist_url)
去掉重复的元素
6.AJAX:
在 XHR 里面不显示数据的话,只能在 ALL 哪些文件里面找 对应的文件的 json 数据
7.\r:
代表 删除后面的字符
8.拼接url:
params = {
'offset': offset,
'format': 'json',
'keyword': '街拍',
'autoload': 'true',
'count': '20',
'cur_tab': '1',
'from': 'search_tab'
}
base_url = 'https://www.toutiao.com/search_content/?'
url = base_url + urlencode(params)
9.访问遇见403:
网友评论