小米路由界面,这里是拨号上网,切换IP
大家可以直接登录小米路由器,若您稍后操作也能得到相同结果,因为本地的.com指向的是服务器,能够持续在线,无需频繁登录,我这里就不进行模拟登录了,这些操作都很简单。登录后,您会发现拨号联网功能,它涉及两个开始和暂停的js事件,只需访问相应地址,路由器便能够进行拨号上网操作。

这里我们用到3个类库,先安装下:
[id_1089365214]install pyquery 这是一个用于解析眼查网页页面的,功能极其强大的HTML解析库,有机会的话,我可以详细为您介绍。
pip install requests #页面请求。
pip install retrying #python异常重试类库
爬虫切换路由IP整体思路

借助数据库系统,我们首先获取特定眼查网站的URL链接,随后启动数据抓取程序。若在抓取过程中未能获取到所需信息,很可能是因为遭遇了拦截。
res = mydb.select('url', cond_dict = {'name':'0'},fields=["id", "url"],order="order by id asc limit 1")
id = res[0][0]
url = res[0][1]
print(url)
r = s.get(url,headers=headers, timeout=5)
html = r.text
d = PyQuery(html)
name = d.find('h1.name').text()
if not name:

if html.find('>抱歉,该信息暂不予显示,查一查其它信息<') != -1:
name = '企业异常,不予以展示'
else:
name = ''
print(str(i)+":"+name)
url2 = d.find('a.company-link').text()
print(url2)
if len(name) == 0:
print('被拦截了'+str(i))
else:

update_params = {"name": name,"wz":url2} # 需要更新为什么值
update_cond_dict = {"id": str(id)} # 更新执行的查询条件
mydb.update('url'执行更新参数操作,同时更新条件字典。
利用小米路由器的接入功能,执行拨号切换操作,一旦实施IP屏蔽,即刻进行IP的更新。
print('开始断网切换IP')
r = s.get(该链接指向的是/cgi-bin/luci/路径,其中包含了固定密钥作为参数,用于访问/api/xqnetwork/pppoe_stop接口。)
for ms in range(10):
print('断网连接'+str(ms)+'秒')
time.sleep(1)

print('开始联网切换IP')
r = s.get(该链接指向的是/cgi-bin/luci/路径,其中包含了固定密钥作为stok参数,并指向/api/xqnetwork/pppoe_start接口。)
for ms in range(15):
print('等待联网'+str(ms)+'秒')
time.sleep(1)
此处采用的模式是,一旦遭遇异常情况,便启动重试机制,从而确保能够持续不断地抓取所需内容。
from retrying import retry
使用@retry装饰器,设置最大尝试次数为50000次,每次等待固定时间为2000毫秒。
def tyc():
#代码
if __name__ == '__main__':
tyc()

最后我们的结果就变成这样了。

最终结果
如此一来,我们便能持续不断地抓取数据,然而,若手头有足够的资金路由器做网站,我仍推荐您购买代理服务,通常来说,VIP代理会更为优质。
好的路由器做网站,内容已尽于此,我是迷神。更多精彩内容,敬请关注我。请广泛分享,如有疑问,欢迎留言咨询。如需获取完整代码,可通过私信联系我,我会发送给您。别忘了关注我哦。

