将熊猫输出下载为已保存文件而不是链接

时间:2019-06-18 22:43:57

标签: python pandas beautifulsoup

我正在尝试为每个片段添加图像以进行播客刮擦。 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')

我如何让熊猫实际上将这些文件下载到本地文件夹,以便在其余代码中引用本地文件?我在网上可以找到的所有内容都与抓取链接等有关。

我知道一个问题是输出将不会包含每个输出的任何部分。

1 个答案:

答案 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)