爬虫初步探索

可用网址

所有上市公司股票代码: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 。

数据分析

项目报告

爬取上市公司与非上市公司数据

研究公司能够上市的条件模型(假设无政治因素影响)

227:227

公司财报只取第一行

上一篇:k8s上安装Presslabs MySQL Operator


下一篇:java 远程调用第三方服务