如何找到网站源代码中的所有url



我正在制作一个python程序,该程序将获得Yandex反向图像搜索页面并获得其源代码,然后使用源代码,我会打印Yandex可以在web中找到的所有url .

基本上:Yandex在网络上搜索图像,并返回找到图像的URL。

所以,问题是:我只能得到URL所在的整行,这意味着我不能得到"https://www.google.com/"作为输出,我得到<a href="https://www.google.com/" target="_blank" class="Link Link_view_default">Google</a>

我的代码很简单:

r = requests.get('https://yandex.com/images/search?rpt=imageview&lr=110480&url=https%3A%2F%2Favatars.mds.yandex.net%2Fget-images-cbir%2F1571103%2FdFrVvX1v9-W-uedRDwo0gQ3711%2Forig&cbir_id=1571103%2FdFrVvX1v9-W-uedRDwo0gQ3711', headers=headers)
print(r.text)

我是否可以只打印google.com而不是整行HTML源代码?

有很多方法可以实现,但最简单的方法是使用regex:

import re
import requests
r = requests.get(
'https://yandex.com/images/search?rpt=imageview&lr=110480&url=https%3A%2F%2Favatars.mds.yandex.net%2Fget-images-cbir%2F1571103%2FdFrVvX1v9-W-uedRDwo0gQ3711%2Forig&cbir_id=1571103%2FdFrVvX1v9-W-uedRDwo0gQ3711'
)
print(re.findall(r'href="(.*?)"', r.text))

这个正则表达式将找出所有看起来像href="..."的字符串切片(.*?将匹配任何子字符串,()表示返回匹配的部分作为结果)

另一方面,您也可以尝试html解析器,如beautifulsoup。

最新更新