首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简单的Python图像抓取器脚本

简单的Python图像抓取器脚本
EN

Stack Overflow用户
提问于 2016-02-17 19:32:36
回答 2查看 2.5K关注 0票数 0

这是一个相当简单的东西,我目前正在试验here...So,而且我几乎没有经验……我想创建一个图片抓取器,去页面下载图片,点击链接(下一页)和下载其他图片等等(作为源码,我使用类似于9gag的网站)。现在我的脚本可以打印图片网址和下一个链接网址,所以我不知道如何让我的机器人点击链接并下载下一个图片,然后无限地(直到条件满足/停止等)……

PS im使用beautifulsoup4 (我想是LOL)

先谢谢你,Zil

下面是脚本现在的样子,我把几个脚本组合成了一个,所以脚本看起来很不干净……

代码语言:javascript
复制
import requests
from bs4 import BeautifulSoup
import urllib

def trade_spider(max_pages):
    page = 1
    while page <= max_pages:
        url2 = 'http://linksmiau.net/linksmi_paveiksliukai/rimtas_rudeninis_ispejimas_merginoms/1819/'
        url = url2
        source_code = requests.get(url)
        plain_text = source_code.text
        soup = BeautifulSoup(plain_text, "html.parser")

        for img in soup.findAll('img', {'class': 'img'}):
            temp = img.get('src')
            if temp[:1]=="/":
                image = "http://linksmiau.net" + temp
            else:
                image = temp

        print(image)


        for lnk in soup.findAll('div', {'id': 'arrow_right'}):
                nextlink = lnk.get('onclick')
                link = nextlink.replace("window.location = '", "")
                lastlink = "http://linksmiau.net" + link
                page += 1
        print(lastlink)
        url2 == lastlink

trade_spider(3)
EN

回答 2

Stack Overflow用户

发布于 2016-02-17 19:45:50

我不会从“点击”链接的角度来考虑它,因为你是在写脚本,而不是使用浏览器。

你需要做的是弄清楚4件事:

  1. 给定一个url,你如何获得它背后的超文本标记语言,并用beautifulSoup解析它--听起来你已经掌握了这一部分。:)
  2. 给出了许多不同的htmls,您如何识别您想要下载的图像和“下一步”链接。+再一次beautifulSoup.
  3. Given一个图片的url (可以在<img>标签的"src“属性中找到),如何将图片保存到磁盘。答案可以在以下StackOverflow问题中找到:Downloading a picture via urllib and python
  4. Given“下一步”链接的url,如何“点击”它-再一次,你并没有真正“点击”你只是从这个新链接下载超文本标记语言并再次开始整个循环(解析它,识别图像和“下一步”链接,下载图像,在“下一步”链接后面获取StackOverflow)。

一旦你分解了问题,剩下的就是把所有的东西组装到一个很好的脚本中,你就完成了。

祝你好运:)

票数 1
EN

Stack Overflow用户

发布于 2016-02-17 21:32:23

已经修好了。DougieHauser是对的,我想和他握手。

我刚把url2行移出了while循环,它似乎工作得很好,现在我要做的就是弄清楚如何让这个脚本将图片保存到我的hdd LOL中

代码语言:javascript
复制
def trade_spider(max_pages):
    url2 = 'http://linksmiau.net/linksmi_paveiksliukai/rimtas_rudeninis_ispejimas_merginoms/1819/'
    page = 1
    while page <= max_pages:
#url2 = 'http://linksmiau.net/linksmi_paveiksliukai/rimtas_rudeninis_ispejimas_merginoms/1819/'
        url = url2
        source_code = requests.get(url)
        plain_text = source_code.text
        soup = BeautifulSoup(plain_text, "html.parser")
        #current_bet_id = "event_odd_id_31362885" #+ str(5)

        #for link in soup.findAll('span', {'class': 'game'}, itemprop="name"):
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35455517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档