当前位置: 代码迷 >> python >> 如何使用Python,请求和漂亮的汤查找与关键字关联的链接
  详细解决方案

如何使用Python,请求和漂亮的汤查找与关键字关联的链接

热度:108   发布时间:2023-06-13 15:18:20.0

我是非常新的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>

我想做的是通过获取关键字,然后打印与关联的链接。

为了找到所有,您需要给它一个标签来寻找。 如果只希望包含单词“ 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对象进行访问。