- 积分
- 259
- 鸿鹄币
- 个
- 好评度
- 点
- 精华
- 注册时间
- 2020-3-9
- 最后登录
- 1970-1-1
- 阅读权限
- 30
- 听众
- 收听
初级工程师
|
通过Scrapy,我们可以轻松地完成一个站点爬虫的编写。但如果抓取的站点量非常大,比如爬取各大媒体的新闻信息,多个Spider则可能包含很多重复代码。
如果我们将各个站点的Spider的公共部分保留下来,不同的部分提取出来作为单独的配置,如爬取规则、页面解析方式等抽离出来做成一个配置文件,那么我们在新增一个爬虫的时候,只需要实现这些网站的爬取规则和提取规则即可。
今天我们就通过Scrapy来爬取目前比较难搞定的美团。因为美团网的反爬措施,需要设置IP代理以及随机切换可用的User-Agent来进行大量数据的爬取。我们是因为购买亿牛云的爬虫代理,所以他们提供了很多的最新的ua库,这个赠送福利是目前所有代理商里面最好的一家。但是美团是超级难采集的,只有代理不行的,要是程序做的不好,应对爬虫策略做的不够完善没法采集的。
接下来我们分享下挂上代理采集美团的完整示例
#! -*- encoding:utf-8 -*-
import requests
import random
# 要访问的目标页面
targetUrl = "http://www.meituan.com"
# 要访问的目标HTTPS页面
# targetUrl = "https://www.meituan.com"
# 代理服务器(产品官网 www.16yun.cn)
proxyHost = "t.16yun.cn"
proxyPort = "31111"
# 代理验证信息
proxyUser = "16YCUTUE"
proxyPass = "458762"
proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
"host" : proxyHost,
"port" : proxyPort,
"user" : proxyUser,
"pass" : proxyPass,
}
# 设置 http和https访问都是用HTTP代理
proxies = {
"http" : proxyMeta,
"https" : proxyMeta,
}
# 设置IP切换头
tunnel = random.randint(1,10000)
headers = {"Proxy-Tunnel": str(tunnel)}
resp = requests.get(targetUrl, proxies=proxies, headers=headers)
print resp.status_code
print resp.text
今天就先分享到这里,关于更多的攻克美团的方法大家可以来留言交流。 |
|