我正在尝试为每个片段添加图像以进行播客刮擦。 RSS feed是一个很大的帮助,但似乎无法使用每个剧集的唯一链接,因为它不是实际链接,因为没有.jpg等。
<img src="http://feeds.feedburner.com/~r/CriminalShow/~4/sr-KhpKmTO0"
因此,出于明显的原因,任何拉出src =的请求均无效。我设法使用此代码从其网站的其他部分提取了每个相关片段的图像:
import requests
import pandas as pd
resp = requests.get("https://thisiscriminal.com/wp-json/criminal/v1/episodes?posts=1000000&page=1").json()
df = pd.DataFrame(resp['posts'], columns=['image'])
df['image'] = df['image'].apply(pd.Series)['large'].replace({'"': '\'','""': '\'','"""': '\'' }, regex=True)
df.to_csv("RSS-alt-img.csv",encoding='utf-8',index='false')
我如何让熊猫实际上将这些文件下载到本地文件夹,以便在其余代码中引用本地文件?我在网上可以找到的所有内容都与抓取链接等有关。
我知道一个问题是输出将不会包含每个输出的任何部分。
答案 0 :(得分:1)
我导入了正则表达式,以便您可以有组织地保存文件名。
尝试以下操作:
import requests
import pandas as pd
import urllib.request
import re
resp = requests.get("https://thisiscriminal.com/wp-json/criminal/v1/episodes?posts=1000000&page=1").json()
df = pd.DataFrame(resp['posts'], columns=['image'])
df['image'] = df['image'].apply(pd.Series)['large'].replace({'"': '\'','""': '\'','"""': '\'' }, regex=True)
Regex_Pattern = r"([^\/]+$)"
for index, row in df.iterrows():
match = re.findall(Regex_Pattern, row['image'])
myfilename = ''.join(match)
print(row['image'])
print(myfilename)
urllib.request.urlretrieve(row['image'], myfilename)