可用网址
所有上市公司股票代码: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
公司财报只取第一行