python-递归爬虫爬取网站所有子链接

python-递归爬虫爬取网站所有子链接

python - 爬虫递归抓取网站信息

实现思路:

  1. 抓取网站所有信息并保存 ;
  2. 是用正则表达式提取子链接;
  3. 递归爬取子链接,保存爬取html信息
# 导入模块
import requests
import re
from urllib import parse
exist_url = []  # 存放已爬取的网页
writeCount = 0
urls = []
def load(url):
    # 检查该url是否爬过
    # 爬取URL
    global writeCount
    req = requests.get(url)
    html = req.content
    # urls.append(url)
    # 正则表达式提取子链接
    con = re.findall(r'(?<=href=")[^\"]+[^index].htm', html.decode('utf-8')) 
    
    # 存入所有子链接
    for x in range(0, len(con)):
        url2 = con[x]
        url1 = 'https://'  # 解析网页中所有子URL
        # 将链接拼接
        newUrl = parse.urljoin(url1, url2)
        urls.append(newUrl)
    print(urls)

    # 去掉已爬取的链接和重复链接
    unique_list = list(set(urls) - set(exist_url))
    print(unique_list)

    # 将读取内容写入文件
    with open('file/index' + str(writeCount) + '.txt', 'w', encoding='utf-8') as fp:
        fp.write(req.text)
    writeCount += 1
    # 遍历所有子URL再次调用
    for i in range(0, len(unique_list)):
        load(unique_list[i])
# 调用爬虫函数
url = 'https://'
load(url)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值