[英]how to use a variable in requests library of python
I'm trying to make a script which reads crunchyroll's rss and visits the LINK in the latest upload and downloads subs from it.. the process goes like : 1.) Read The latest episode link from RSS. 我正在尝试制作一个脚本,该脚本读取crunchyroll的rss并访问最新上传的LINK并从中下载子链接。该过程如下:1.)从RSS阅读最新的情节链接。 2.) Go to the link 3.) In the source code, look for text "ssid".
2.)转到链接3.)在源代码中,查找文本“ ssid”。 4.) Get the 6 characters of the ssid.
4.)获取ssid的6个字符。 5.) Then append those characters at the end of this like " http://www.crunchyroll.com/xml/?req=RpcApiSubtitle_GetXml&subtitle_script_id= " and save the xml page.
5.)然后在这些字符的末尾附加“ http://www.crunchyroll.com/xml/?req=RpcApiSubtitle_GetXml&subtitle_script_id= ”并保存xml页面。
My script works half way... 我的脚本工作了一半...
My Code:- 我的代码:
import feedparser
import webbrowser
import os
import subprocess
import re
import urllib
import urllib2
from urllib2 import urlopen
from bs4 import BeautifulSoup
import requests
import cookielib
feed = feedparser.parse('http://www.crunchyroll.com/rss/anime') #checks the RSS
url = feed['entries'][0]['link'] + '?p720=1' # get's the link from latest release and appends some character for the 720p resolution of the link.
# Now, here, I'm writing this URL to a text file and then read from the text file
file = open("newfile.txt", "w")
file.write(url)
file.close()
file = open('newfile.txt', 'r')
#print file.read()
lobo = file.read()
print lobo
# Now, I put the URL that is being read from file in requests to go to the link. Everything works fine till here.
r = requests.get(lobo)
soup = BeautifulSoup(r.text)
print soup.title
webbrowser.open_new_tab(lobo)
subtitles = soup.findAll('span',{'class':'showmedia-subtitle-text'})
for ssid in subtitles:
x = ssid.find_all('a', limit=1)
for a in x:
print a['href'][-6:]
xmlLink = 'http://www.crunchyroll.com/xml/?req=RpcApiSubtitle_GetXml&subtitle_script_id=' + a['href'][-6:]
#webbrowser.open_new_tab(xmlLink)
print xmlLink
Now, I get error that 'a' in this xmlLink is not defined. 现在,我得到一个错误,指出此xmlLink中的“ a”未定义。
But, there's a twist to it... if I put the direct http link in "r = requests.get(lobo)" .. everything works like it is supposed to.But, if I use this variable.. it's not working. 但是,这有个问题……如果我将直接的http链接放在“ r = request.get(lobo)”中,那么一切都会按预期进行。但是,如果我使用此变量,则无法工作。 。
Any help would be appreciated.Thank You 任何帮助将不胜感激。谢谢
It looks like the a
variable is defined inside of the for
loop but the xmlLink
variable is not. 看起来
a
变量是在for
循环内定义的for
而xmlLink
变量不是。 Try indenting the xmlLink
line in to match the indentation level of the for
loop. 尝试缩进
xmlLink
行以匹配for
循环的缩进级别。 For example: 例如:
for a in x:
print a['href'][-6:]
xmlLink = 'http://www.crunchyroll.com/xml/?req=RpcApiSubtitle_GetXml&subtitle_script_id=' + a['href'][-6:]
#webbrowser.open_new_tab(xmlLink)
print xmlLink
The url that you're using is a str
. 您使用的网址是
str
。 You should use Python's string format function. 您应该使用Python的字符串格式函数。
xmlLinkBase = 'http://www.crunchyroll.com/xml/?req=RpcApiSubtitle_GetXml&subtitle_script_id={0}'
for a in x:
print a['href'][-6:]
xmlLink = xmlLinkBase.format(a['href'][-6:])
#webbrowser.open_new_tab(xmlLink)
print xmlLink
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.