我正在抓紧抓取我的第一个爬虫,并尝试获取没有alt =“”属性的所有图像。
所以我的搜寻器找到了所有没有alt的图像,但是给了我不了解的json项。这是一个示例json输出:
[
"[\"data:image/gif;base64,R0lGODdhAQABAPAAA///wAAACwAAAAAAQABAEACAkQBADs=\"]",
"[\"https://tobier.de/media/2018/06/logo2-1.png\"]",
"[\"data:image/gif;base64,R0lGODdhAQABAPAAAP///wAAACwAAAAAAQABAEACAkQBADs=\"]",
"[\"https://tobier.de/media/2018/07/12548893_1089313591090351_8553746080250989501_n.jpg\"]",
"[\"data:image/gif;base64,R0lGODdhAQABAPAAAP///wAAACwAAAAAAQABAEACAkQBADs=\"]",
"[\"https://tobier.de/media/2018/07/16729432_1368587256496315_1586875734109631011_n.jpg\"]"
]
我的问题:
"data:image/gif..."
项是什么?为什么在其中?
我的图像的Python代码:
def getImages(self, response):
images = response.xpath('//img')
imagesWithout = []
for img in images:
alt = img.xpath('./@alt').extract()
if not alt:
imagesWithout.append( img.xpath('./@src').extract() )
return json.dumps(imagesWithout)
编辑: 在抓取的Website上,没有图像标签base64 src。
答案 0 :(得分:0)
如果您查找页面的源代码(这适用于chrome和firefox):
view-source:https://tobier.de/wordpress-custom-post-type/
例如,您有这个
<img class="figure-img img-fluid rounded" src="data:image/gif;base64,R0lGODdhAQABAPAAAP///wAAACwAAAAAAQABAEACAkQBADs=" data-lazy-src="https://tobier.de/media/2018/07/wordpress-custom-post-type-1.png" alt="wordpress custom post type" itemprop="contentUrl"/>
那是您在json中获得的第一个。
可能是一些Wordpress特定的图像。
答案 1 :(得分:-1)
代码看起来像它的本意。
陌生的src标记是一种技巧,here
我转到了网页链接,并在base 64中找到了至少一张包含数据的img
<span class="ez-toc-section" id="Permalinks_aktualisieren">Permalinks aktualisieren</span></h3><p>Erstellen wir im Backend nun einen Mitarbeiter, sehen wir unter dem Title den Permalink. Wie konfiguriert, wird zwischen der Domain und dem Mitarbeiter-Name nun der Slug „mitarbeiter“ ausgegeben.</p><figure class="figure" itemscope itemtype="http://schema.org/ImageObject"> <img class="figure-img img-fluid rounded" src="data:image/gif;base64,R0lGODdhAQABAPAAAP///wAAACwAAAAAAQABAEACAkQBADs=" data-lazy-src="https://tobier.de/media/2018/07/permalink.png" alt="post type permalink" itemprop="contentUrl"/>