【发布时间】:2017-06-22 13:49:15
【问题描述】:
我的目标是编写一个脚本,用于下载图片壁纸网站链接中包含的 jpg 文件。为了实现这一点,我想基本上在网页上搜索超链接(由变量定义,这里是屏幕分辨率的 screenres),因为这个特定的网站列出了文件的不同分辨率。在网页中搜索超链接(例如:1280x800)后,我想以url的形式返回超链接的值(例如:www.testwallpaperwebsite.com/image1020x800.jpg)。然后我会将其传递给其他工具以下载 jpg。到目前为止,这是我返回网页上所有 url 链接的代码,但我似乎无法找到一种方法让我搜索超链接并仅返回该 url:
import urllib.request
import lxml.html
screenres = 1280x800 # this is the hyperlink I am trying to find on webpage, however variable can change depending on screen size
connection = urllib.request.urlopen("www.testwallpaperwebsite.com")
dom = lxml.html.fromstring(connection.read())
for link in dom.xpath('//a/@href'):
print(link)
我在 Stack Overflow 上找到了很多关于检索 URL 的答案,但没有任何东西可以帮助我专门搜索超链接并提取其 URL。有没有办法让它首先识别一组字符(如我的变量)是否是超链接?诚然,我对 Python 和网络爬虫比较陌生,所以我仍在尝试掌握提取信息的机制。此外,如果这个简单的任务可以通过仅使用 urllib/lxml/其他本机模块而不是下载 BeautifulSoup 来完成,那就太好了。但是,如果没有其他办法,或者这样做会非常复杂,我绝对可以下载并使用BeautifulSoup;只是想尝试降低脚本的复杂性。感谢您的帮助!
【问题讨论】:
-
向我们提供 HTML 代码,包括所需的超链接。如果您认为必须伪装,您可以伪装网站的域,但我们需要此信息,因为根据 url 在 HTML 中嵌入的方式,显示您想要的内容所需的代码可能会有所不同。例如,人们可能希望抓取的网站之一有这样的代码
<li><a href="/size/1280x1024/"><span class="FCU">3619</span>1280x1024</a></li>。你的可能完全不同。
标签: python-3.x hyperlink web-scraping lxml urllib