[Python] 十万多rss源爬虫



[Python] 十万多rss源爬虫

作者: cj13888

全网最全的网络资源分享网站

手机扫码查看

标签:

Python爬虫

特别声明:本站资源分别为免费资源、查看密码或解压密码资源、三个级别VIP会员资源。本站所有发布的内容都是安全,请放心下载!本站不可能所有资源都可以商业用途,原创或部分除外!如:商业用途请联系原作者购买正版。与本站无关!若侵犯到您的权益,请联系本站删除,我们将及时处理!

分享

如题,最近喜欢上折腾rss,就差rss订阅源。最近新上架了一个应用,抓包接口,从里面爬取一些rss源。

没时间去学python,但是又想去尝试写,结果多线程写出来的比java慢很多,就放单线程代码上来吧。

感兴趣的也可以帮忙修改下放评论区(随机user-agent+代{过}{滤}理ip),不然十万多条数据,估计给封ip

接口从1到十万多,因为中间有些rss是失效的,被删除所以没数据。我是用count进行判断的,连续30次获取到的数据都为空即退出。

附上代码;

import requests
import json
import csv

rows = []
num = 3000
count = 0
headers = {
        'Host': 'api.qingmang.me',
        'Connection': 'close',
        'User-Agent': 'Mango 3.0.0 (iPhone 6s Plus; ios-iphone 13.3.1; zh_CN)'
    }

for n in range(0, 500):
    url = 'http://api.qingmang.me/v2/pool.list.info?list=k'
    num = num + 1
    url = url + str(num)
    row = []
    # 打印本次请求地址
    print(url)

    # 发送请求,获取响应结果
    response = requests.get(url=url, headers=headers, verify=False)
    text = response.text

    # 将响应内容转换为Json对象
    res_json = json.loads(text)
    if str(res_json['ok']) == 'True':
        count = 0
        # 从Json对象获取想要的内容
        temp = res_json['listInfo']
        if 'listId' in temp:
            id = temp['listId']
        else:
            id = ''
        if 'contentType' in temp:
            contentType = temp['contentType']
        else:
            contentType = ''
        if 'name' in temp:
            name = temp['name']
        else:
            name = ''
        if 'rssUrl' in temp:
            rssUrl = temp['rssUrl']
        else:
            rssUrl = ''
        if 'sourceUrl' in temp:
            sourceUrl = temp['sourceUrl']
        else:
            sourceUrl = ''
        # 生成行数据
        row.append(str(id))
        row.append(str(contentType))
        row.append(str(name))
        row.append(str(rssUrl))
        row.append(str(sourceUrl))

        # 保存行数据
        rows.append(row)

    else:
        print("该节点没有rss")
        print(count)
        count = count + 1
        # 由于接口部分rss源失效,因此判定连续30次没有获取数据即退出爬取
        if count > 30:
            print("已经到尽头了,最后id为:k" + str(num))
            break

# 生成Excel表头
header = ['Id','类型','名称','rss订阅源地址','原始地址']

# 将表头数据和爬虫数据导出到Excel文件
with open('D:\\rss.csv', 'w', encoding='gb18030',newline='') as f:
    f_csv = csv.writer(f)
    f_csv.writerow(header)
    f_csv.writerows(rows)
分享到:
打赏
未经允许不得转载:

作者: cj13888, 转载或复制请以 超链接形式 并注明出处 易启发资源网
原文地址: 《[Python] 十万多rss源爬虫》 发布于2020-10-2

评论


切换注册

登录

忘记密码?

您也可以使用第三方帐号快捷登录

切换登录

注册

[Python] 十万多rss源爬虫

长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏