企查查,一个查询企业信息的网站,这个网站也是网络爬虫选择采集的对象,这个网站反爬提别厉害,没有一定的爬虫技术,是无法采集成功的。
网络爬虫从企查查采集企业信息,如果想要看到完成的企业信息就需要登录后点击详情才能看到信息,但是只能看到部分的信息,但是登录就会出现验证码,如果是爬虫行为就很容易被识别出来,这时候就需要使用到cookie进行登陆,使用cookie登陆,服务器会认为你是一个已登陆的用户,所以就会返回给你一个已登陆的内容。因此,需要验证码的情况可以使用带验证码登陆的cookie解决。登陆之后获取企业信息的页面源码,解析所采集的数据,获取到企业的名称和数据代码,处理好验证码,避免爬虫行为被限制,大部分网站均限制了IP的访问量,对于爬虫频繁访问,导致被网站限制,我们还可以通过使用爬虫代理来解决。然后将采集的数据信息保存到文件中即可。
简单来说采集企查查的步骤很简单:
1、使用COOKIE进行登陆并处理好验证码
2、使用爬虫代理
3、采集企业信息页面
4、解析所采集的数据
5、储存采集的数据信息
以下是采集企查查的代码仅供参考:
#! -*- encoding:utf-8 -*-
import requests
import random
import requests.adapters
# 要访问的目标页面
targetUrlList = [
"https://httpbin.org/ip",
"https://httpbin.org/headers",
"https://httpbin.org/user-agent",
]
# 代理服务器(产品官网 www.16yun.cn)
proxyHost = "t.16yun.cn"
proxyPort = "31111"
# 代理隧道验证信息
proxyUser = "username"
proxyPass = "password"
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,
}
# 访问三次网站,使用相同的Session(keep-alive),均能够保持相同的外网IP
s = requests.session()
# 设置cookie
cookie_dict = {"JSESSION":"123456789"}
cookies = requests.utils.cookiejar_from_dict(cookie_dict, cookiejar=None, overwrite=True)
s.cookies = cookies
for i in range(3):
for url in targetUrlList:
r = s.get(url, proxies=proxies)
print r.text
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。