【问题标题】:Crawling a web page for image urls抓取网页以获取图片网址
【发布时间】:2015-10-26 15:26:41
【问题描述】:

以下是一段python代码,用于爬取网页并打印出图片的url:

import urllib, re

source = urllib.urlopen('http://www.gardensafari.net/english/squirrels.htm').read()

## every image name is an abbreviation composed by capital letters, so...
m = re.findall('.*?\\.(?i)(jpg|jpeg|png|gif|bmp|tif|tiff)', source)

for link in re.findall('.*?\\.(?i)(jpg|jpeg|png|gif|bmp|tif|tiff)', source):
    print link

但是,它只打印扩展名:

jpg
jpg
jpg
gif
jpg
gif
jpg
jpg
jpg
jpg...

我做错了什么?任何帮助,将不胜感激。谢谢!

【问题讨论】:

    标签: python image web-crawler


    【解决方案1】:

    由于输入数据是 HTML,我将使用 HTML 解析器

    这是涉及BeautifulSoup parser的工作示例:

    import urllib
    from bs4 import BeautifulSoup
    
    soup = BeautifulSoup(urllib.urlopen('http://www.gardensafari.net/english/squirrels.htm'))
    
    for img in soup.find_all("img", src=True):
        print(img["src"])
    

    【讨论】:

    • 感谢您的回答!后续问题 - 如果输入数据不是 html 怎么办?例如,当使用上述脚本并且 url 是 -https://www.airbnb.com/ 时,它不会给出任何结果。那有什么办法呢?
    • @codepi 好吧,airbnb 网站通常非常动态,您可以探索他们提供的 API。谢谢。
    猜你喜欢
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-19
    • 1970-01-01
    • 2022-01-27
    • 1970-01-01
    • 2020-06-18
    相关资源
    最近更新 更多