获取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上: