吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5183|回复: 8
上一主题 下一主题
收起左侧

[Python 转载] 十万多rss源爬虫

  [复制链接]
跳转到指定楼层
楼主
ZHXZHX 发表于 2020-10-1 15:55 回帖奖励

如题,最近喜欢上折腾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)

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
深水夜藏 + 1 + 1 我很赞同!
5ud0 + 1 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
skyadmin 发表于 2020-10-1 19:02
爬虫大佬
3#
yanyaneboy 发表于 2020-10-1 20:23
4#
wvwv 发表于 2020-10-1 21:10
5#
 楼主| ZHXZHX 发表于 2020-10-1 21:14 |楼主
yanyaneboy 发表于 2020-10-1 20:23
没有爬到什么东西。。。

类型是公众号的是订阅地址是隐藏的,类型是rss的话就有订阅源地址。刚测试了一下,count=30还是太小了,中间估计是有订阅源删除了,还是能爬取到东西的
6#
 楼主| ZHXZHX 发表于 2020-10-1 21:16 |楼主
wvwv 发表于 2020-10-1 21:10
有啥好的订阅吗?

寻找中。。。。。。。
7#
深水夜藏 发表于 2020-10-2 19:33
有学习资源吗?我也想学
8#
lsmzcy 发表于 2020-10-5 18:11

有学习资源吗?我也想学
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-9 09:02

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表