火车头怎样采集全站url?批量提取网站内页url?还是python好用 -世界杯365买球

seo工具 12-10 21:36:00

前几天有个朋友发来一个网站,这个网站的列表页被站长全部封死了,进入世界杯365买球首页之后,所有分类页无列表,所有的网址都不给列表,用火车头去爬取的时候,这个没有列表太痛苦了,火车头初始地址一般是从列表页开始的,而且没有列表页就只能从单个网址,比如世界杯365买球首页进行设置,下面只有设置更多的2、3、4、5、6、7级网址才能采集到更多的数据,基本是没法批量搞了。


这种情况之前也遇到过,因为很多网站都有替代类型的其他网站,这个不行就换其他的站点来搞,近几天想了想逻辑,准备用python做个遍历,让请求在一个列表的不断遍历,直至没有重复的数据停止。


逻辑:给一个网址,进行请求,获取的网址在for循环提取出来,进行请求,获取到的新网址,和提前设置的列表变量中的数据做比较,如果不重复,就写进列表变量中,同时保存到本地的记事本中,然后线程再进入请求网址的循环环,不断的写入网址,不断的写出网址。


因为脚本是对全局变量里面的网址挨个请求,这其中会产生多次重复访问,数据量巨大,执行到后期会越来越慢,产出的数据越来越少,淘小白自己测试,产出7万数据时,速度还是可以。


产出的网址,基本不用过滤,可以直接导入到火车头进行请求,就可以采集了,里面的网址有世界杯365买球首页、有列表页、有内容页,因为我们主要对内容页进行采集,所以,我们在设置采集规则的时候,直接设置内容页的采集规则,对内容为空进行过滤就可以了,还是比较方便的。


使用火车头采集全站是比较麻烦的,如果一个站有n个列表页,我们单独去配置列表,那也是不小的工作量,如果我们直接用python执行一个全站遍历,就可以突破采集数量的限制。


有的朋友也可能会问,既然python都写出来整站遍历了,直接用python不就完了,o(∩_∩)o哈哈~python学艺不精,目前还得依靠火车头,因为火车头太熟悉了,闭眼能背出他的所有功能。越简单越好,越复杂越头疼。


最后附上自己写的代码,需要的拿去,对你有帮助,请打赏赞助一下,谢谢~


#-*-coding:utf-8-*- 
import sys,importlib
import sys
import importlib
import requests
import json
import re
import time


home_url = "http://13231123134.com"

headers = {

'user-agent': 'mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/96.0.4664.45 safari/537.36',
'cookie': '写自己的cookie到这里'
}

for i in range(1,2) :
print("进入大循环")
list_url = []
list_url.append(home_url)
for a in list_url:
list_req = requests.get(a,headers=headers)
list_res = list_req.text
list_url_per = re.findall('list.jpg