如何在 python 的请求库中使用变量
how to use a variable in requests library of python
我正在尝试制作一个脚本来读取 crunchyroll 的 rss 并访问最新上传的 LINK 并从中下载订阅..
这个过程是这样的:
1.) 从 RSS 阅读最新一集 link。
2.) 转到 link
3.) 在源代码中,查找文本 "ssid"。
4.) 获取 ssid 的 6 个字符。
5.) 然后在末尾附加这些字符,如“http://www.crunchyroll.com/xml/?req=RpcApiSubtitle_GetXml&subtitle_script_id=”并保存 xml 页面。
我的脚本运行到一半...
我的代码:-
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
现在,我收到错误消息,指出此 xml 链接中的 'a' 未定义。
但是,它有一个扭曲...如果我将直接 http link 放在 "r = requests.get(lobo)" .. 一切都像预期的那样运行 to.But,如果我使用它变量..它不工作。
任何帮助都将是 appreciated.Thank 你
看起来 a
变量是在 for
循环内部定义的,但 xmlLink
变量不是。尝试缩进 xmlLink
行以匹配 for
循环的缩进级别。例如:
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
您使用的 url 是 str
。您应该使用 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
str.format
Docs
我正在尝试制作一个脚本来读取 crunchyroll 的 rss 并访问最新上传的 LINK 并从中下载订阅.. 这个过程是这样的: 1.) 从 RSS 阅读最新一集 link。 2.) 转到 link 3.) 在源代码中,查找文本 "ssid"。 4.) 获取 ssid 的 6 个字符。 5.) 然后在末尾附加这些字符,如“http://www.crunchyroll.com/xml/?req=RpcApiSubtitle_GetXml&subtitle_script_id=”并保存 xml 页面。
我的脚本运行到一半...
我的代码:-
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
现在,我收到错误消息,指出此 xml 链接中的 'a' 未定义。
但是,它有一个扭曲...如果我将直接 http link 放在 "r = requests.get(lobo)" .. 一切都像预期的那样运行 to.But,如果我使用它变量..它不工作。
任何帮助都将是 appreciated.Thank 你
看起来 a
变量是在 for
循环内部定义的,但 xmlLink
变量不是。尝试缩进 xmlLink
行以匹配 for
循环的缩进级别。例如:
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
您使用的 url 是 str
。您应该使用 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
str.format
Docs