Python网络爬虫遇到一些非代码9问题

2019-07-25  本文已影响0人  木下瞳

了解更多关注微信公众号“木下学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:

上一篇下一篇

猜你喜欢

热点阅读