问题描述
我是非常新的python请求和漂亮的汤,所以我的代码可能真的很糟糕。
我现在所拥有的:
f = open('sites.txt','r')
sitelist = []
for line in f:
sitelist.append(line.strip())
getsites = ['']
print(sitelist)
for i in range(len(sitelist)):
getsites.append(sitelist[i])
for i in range(len(sitelist)):
temp = requests.get(sitelist[i])
data = temp.text
soup = BeautifulSoup(data, "html.parser")
for url in soup.find_all("Yeezy"):
print(element.find_previous_sibling('loc'))
print(url.text)
我正在解析的XML文件示例:
<url>
<loc>
https://www.a-ma-maniere.com/products/beanie-502805f16-black-white
</loc>
<lastmod>2016-12-24T22:25:05Z</lastmod>
<changefreq>daily</changefreq>
<image:image>
<image:loc>
https://cdn.shopify.com/s/files/1/0626/9065/products/502805F16-1.jpg?v=1472499019
</image:loc>
<image:title>Alexander Wang: Beanie (Black/White)</image:title>
</image:image>
</url>
我想做的是通过获取关键字,然后打印与关联的链接。
1楼
为了找到所有,您需要给它一个标签来寻找。 如果只希望包含单词“ Yeezy”的类型的标签,则在for循环中检查标签的文本是否为您要查找的字符串。 如果它是您要查找的字符串,那么您就有想要的元素并且可以打印url。
对于大多数网址,这只是
for url in soup.find_all('a')
if "Yeezy" in url.get_text():
print(url['href'])
对于您来说更像
for url in soup.find_all('url')
if url.find('image:title') and url.loc:
if "Yeezy" in url.find('image:title').get_text()
print(url.find('image:loc').get_text())
有关更多信息,请访问
因为此时您要获取图像,所以您可能还需要查看 。 您将需要一个可以读取和存储图像的库,而不是尝试将其作为内置的python对象进行访问。