获取pixiv和iwara关注的用户的id

2024 年 9 月 23 日 星期一(已编辑)
/ ,
85
这篇文章上次修改于 2024 年 10 月 10 日 星期四,可能部分内容已经不适用,如有疑问可询问作者。

获取pixiv和iwara关注的用户的id

一开始我是用浏览器自动化工具Selenium,因为考虑到反爬,想着直接用浏览器是不是更保险,但是后面实际用下来感觉不够智能(,于是果断换成了Playwright来进行自动化浏览,就使用感觉上来说高级多了( 获取到了数据,接下来就是处理数据了,我获取用户id的目的就是在不自建rsshub的前提下用官方的或者第三方的rsshub服务器来订阅我关注的用户的的rss(关注的太多了!),所以,我直接一步到位,生成一份opml的文件省事:

def generate_opml(usernames, output_file='iwara_followed_users.opml'):
    """
    根据用户名列表生成 OPML 文件
    """
    opml = ET.Element('opml', version="1.0")
    
    head = ET.SubElement(opml, 'head')
    date_created = ET.SubElement(head, 'dateCreated')
    date_created.text = time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.gmtime())
    title = ET.SubElement(head, 'title')
    title.text = "Iwara Following Users OPML Export"
    
    body = ET.SubElement(opml, 'body')
    outline_main = ET.SubElement(body, 'outline', text="Iwara 关注用户", ttrssSortOrder="0")
    
    for uname in usernames:
        outline = ET.SubElement(
            outline_main,
            'outline',
            type="rss",
            text=uname,
            xmlUrl=f"https://rsshub.app/iwara/users/{uname}",
            ttrssSortOrder="0",
            ttrssPurgeInterval="0",
            ttrssUpdateInterval="0",
            htmlUrl=f"https://www.iwara.tv/users/{uname}"
        )
    
    # 使用 minidom 进行美化
    rough_string = ET.tostring(opml, 'utf-8')
    reparsed = minidom.parseString(rough_string)
    pretty_xml = reparsed.toprettyxml(indent="  ")
    
    with open(output_file, 'w', encoding='utf-8') as f:
        f.write(pretty_xml)
    
    print(f"OPML 文件已生成:{output_file}")

这两个脚本已经开源在GitHub上:

使用社交账号登录

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...