码迷,mamicode.com
首页 > 其他好文 > 详细

寒假学习进度15

时间:2020-02-16 17:59:14      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:进度   status   user   代码   eth   port   pycharm   cep   网络   

  接上次的python爬虫进阶,这次学习了针对一些网站的反爬虫处理方式以及用键值对向url传递参数,模拟人工输入的网页搜索。

  我们知道,不管是正常的爬虫还是恶意爬虫,不仅会导致网站信息泄露,而且还会导致服务器压力过大。想象一下,一台计算机模拟人工请求访问服务器,并且与以计算机的速度与服务器进行交互,势必会导致服务器压力过大或者瘫痪。所以,很多正规的大型网站不想让网络爬虫爬取数据,设置了反爬虫机制。最常见的就是user-agent,简单来说,就是被爬取的网站会通过访问的url中的user-agent信息,来判断这次的网站访问是浏览器访问,还是计算机程序访问,自动屏蔽计算机程序访问。

  我们可以自动设置user-agent信息,模拟浏览器访问网站,就能绕过去一部分反爬虫机制。当然,我试着用这个方法,还是不能绕过百度的搜索限制,看来还得继续学习其他的绕过反爬虫机制的方法。

  代码如下(绕过亚马逊反爬虫机制的案例)

  

# -*- coding: utf-8 -*-
# @Time    : 2020/2/8 10:15
# @Author  : duoduo
# @FileName: pc1.py
# @Software: PyCharm

import requests
import re

#爬出异常处理框架
""""
def GetHttp(url):
    try:
        r=requests.get(url)
        r.raise_for_status()
        r.encoding=r.apparent_encoding
        return r.text
    except:
        return "访问错误"
"""""
#模拟浏览器(针对Amazon反爬虫机制(抱歉,我们只是想确认一下当前访问者并非自动程序))
kv={user-agent:Mozilla/5.0}
url=https://www.amazon.cn/dp/B007J4IZNO/
r=requests.get(url,headers=kv)
r.encoding=r.apparent_encoding
print(r.status_code)
print(r.text)

 

寒假学习进度15

标签:进度   status   user   代码   eth   port   pycharm   cep   网络   

原文地址:https://www.cnblogs.com/Aduorisk/p/12317770.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!