爬虫初步探索

可用网址

所有上市公司股票代码:http://ipo.ubaike.cn/list_1/2.html

反爬攻略

Headers核心部分

Requests Headers:
• “吾是人!”——修改user-agent:里面储存的是系统和浏览器的型号版本,通过修改它来假装自己是人。

• “我从台湾省来”——修改referer:告诉服务器你是通过哪个网址点进来的而不是凭空出现的,有些网站会检查。

• “饼干!”:——带上cookie,有时带不带饼干得到的结果是不同的,试着带饼干去“贿赂”服务器让她给你完整的信息。

headers的伪装
随机User-Agent

爬虫机制:很多网站都会对Headers的User-Agent进行检测,还有一部分网站会对Referer进行检测(一些资源网站的防盗链就是检测Referer)

随机User-Agent生成 :生成一个随机的User-Agent,这样你就可以是很多不同的浏览器模样。

#!/usr/bin/python3

#@Readme : 反爬之headers的伪装

# 对于检测Headers的反爬虫
from fake_useragent import UserAgent   # 下载:pip install fake-useragent 

ua = UserAgent()        # 实例化,需要联网但是网站不太稳定-可能耗时会长一些

# 1.生成指定浏览器的请求头
print(ua.ie)
print(ua.opera)
print(ua.chrome)
print(ua.google)
print(ua.firefox)
print(ua.safari)
# 随机打印一个浏览器的User-Agent
print(ua.random)
print('完毕。')

# 2.在工作中常用的则是ua.random方式
import requests
ua = UserAgent()
print(ua.random)  # 随机产生

headers = {
    'User-Agent': ua.random    # 伪装
    }

# 请求
url = 'https://www.baidu.com/'
response = requests.get(url, headers=headers)
print(response.status_code)

Referer的伪装——一般不用

如果想爬图片,图片反盗链的话就要用到Referer了。
headers = {‘User-Agent’:ua.random,‘Referer’:‘这里放入图片的主页面’}
如果遇到防盗链的图片,一般思路就是先爬到所有图片的地址.jpg —–>将它们储存在列表中 —–>遍历访问图片地址,然后用 ‘wb’的格式打开文件写入,文件名根据图片地址动态改变。

这个基本上如果你的爬虫对象不是很严肃的图片网站,都不会用到。

Referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。用于统计访问量、防外连接等。

错误与异常

1、遇到网络问题(如:DNS 查询失败、拒绝连接等)时,Requests 会抛出一个 ConnectionError 异常。
2、如果 HTTP 请求返回了不成功的状态码, Response.raise_for_status() 会抛出一个 HTTPError 异常。
3、若请求超时,则抛出一个 Timeout 异常。
4、若请求超过了设定的最大重定向次数,则会抛出一个 TooManyRedirects 异常。
5、所有Requests显式抛出的异常都继承自 requests.exceptions.RequestException 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值