stackoverflow上的第一篇文章。我会尽量正确格式化。
我正在处理一个我没有多少经验的小蟒蛇脚本,用于从图像subreddit中删除图像。目前我可以下载一个html页面,例如来自r / pics,但我在解析图像网址时遇到问题,特别是来自imgur的网页。我想做的是过滤出表格的网址
http://i.imgur.com/ PNG *******。
进入元组,但我不确定如何做到这一点。
我目前的尝试是这样的:
from subprocess import call
picture_url_list = []
return_code = call("wget -O redithtml www.reddit.com/r/pics/", shell = True)
inputfile = open("redithtml")
find_text = "http://i.imgur.com/"
for line in inputfile:
while True:
this_url = line.rfind(find_text)
if this_url == -1:
break
line_partition = line.partition(line[this_url:this_url + 31])
picture_url_list.append(line_partition[1])
line = line_partition[2]
if line.lenght() == 0:
break
我一直在寻找here寻求帮助,但唯一的例子是使用'}'}或者' fnmatch'解析元组,而不是文本流。
所以,只是为了澄清;我试图通过查找并将i.imgur网址放在一个元组中来删除reddit中的图像,以便在下一段代码中删除(未显示)。
答案 0 :(得分:0)
使用BeautifulSoup并请求下载和处理页面。
from bs4 import BeautifulSoup
import requests
r = requests.get("http://www.reddit.com/r/pics/")
data = r.text
soup = BeautifulSoup(data)
for link in soup.find_all('a', href=True):
linkHref = link.get('href')
if linkHref.startswith('http://i.imgur.com/'):
print(linkHref)
soup.find_all('a', href=True)
将使用已定义的href属性获取所有链接。在循环中,我们检查链接是否以http://i.imgur.com/开头,如果我们打印它(这里你必须添加代码来完成你不想对该图像做的事情。)