Scrapy爬虫之美团
通过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
今天就先分享到这里,关于更多的攻克美团的方法大家可以来留言交流。
Scrapy爬虫之美团
xiaotaomi
会员积分:6520
通过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
今天就先分享到这里,关于更多的攻克美团的方法大家可以来留言交流。
21-05-24 16:25
1139
0
回复
暂无评论