php 抓取网页生成图片(如何通过函数批评获取图片地址的字符串传递给下载函数)
优采云 发布时间: 2021-09-13 23:10php 抓取网页生成图片(如何通过函数批评获取图片地址的字符串传递给下载函数)
今天的标题有点夸张。至于R的爬虫知识,我只是稍微了解一下。
主要是我看不懂正则表达式,尤其是那种需要匹配括号内多种类型文本的句子。它看起来像火星文。估计短期内难以理解。
另外,我对HTML结构没多大感觉,对目标定位很困扰。
但是,相比于文本信息,html中图片的地址更好获取。这里仅以抓图为例。懂Python爬虫的大神也求轻喷~
今天要爬的是一个多图知乎网页,是外拍的帖子,介绍了很多外拍技巧,很实用很干。
library(rvest)
library(downloader)
library(stringr)
library(dplyr)
/question/19647535
打开网页后,在帖子内容中随机定位一张图片,然后右击选中元素(Ctrl+Shift+I),页面右侧会自动弹出的网页结构找到图片的地址。您将在 html 结构中看到图片的名称标签:-(img);地址标签-(src)。
我们要获取的是图片的地址信息。您可以尝试使用downlond功能下载单张图片。
url%html_attr("src")
我们需要获取的是图片所在的div分支结构中img标签下的src内容(即图片地址),所以如果不想抓取很多不相关的图片,必须指定目标图片的存储位置,上面的代码过程是从url(知乎post页面URL)定位目标图片所在的div分支结构,然后定位src信息(即目标图片 URL)在分支结构中的 img(图片标签)中。
运行上面两行代码,用head函数预览链接向量的前几行,检查获取的图片地址是否正确。
不幸的是,我们获得的用于存储图像地址信息的字符串向量的每隔一行都有一个无效的 URL。如果不清除这些无效的 URL 或过滤掉完整的 URL,下载功能将无效。 URL 将结束,下载过程将失败。
这里需要使用stringr包进行条件过滤。
pat = "https"
link