网页内容抓取工具( 使用Chrome扩展程序电子邮件提取器提取器是Chrome插件)
优采云 发布时间: 2021-12-15 03:23网页内容抓取工具(
使用Chrome扩展程序电子邮件提取器提取器是Chrome插件)
urls = $$(‘a’); for (url in urls) console.log ( urls.href);
只需一行代码,我们就可以找到该特定页面上存在的所有 URL:
使用 Chrome 扩展电子邮件提取器
Email Extractor 是一个 Chrome 插件,它捕获我们当前浏览的页面上显示的电子邮件 ID
它甚至允许我们下载 CSV 或文本文件中的电子邮件 ID 列表:
BeautifulSoup 和正则表达式
上述方案仅在我们只想从一页抓取数据时有效。但是如果我们想在多个页面上执行相同的步骤呢?
有很多网站可以通过收费来为我们做这件事。但好消息是——我们也可以用 Python 编写自己的网络爬虫!让我们在下面的实时编码窗口中检查操作方法。
在 Python 中抓取图片
在本节中,我们将从同一个 Goibibibo 网页中抓取所有图片。第一步是导航到目标网站并下载源代码。接下来,我们将使用标签来查找所有图像:
"""Web Scraping - Scrap Images"""# importing required librariesimport requestsfrom bs4 import BeautifulSoup# target URLurl = "https://www.goibibo.com/hotels/hotels-in-shimla-ct/"headers = { 'User-Agent': "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36" }response = requests.request("GET", url, headers=headers)data = BeautifulSoup(response.text, 'html.parser')# find all with the image tagimages = data.find_all('img', src=True)print('Number of Images: ', len(images))for image in images: print(image)
从所有图像标签中,仅选择 src 部分。另外请注意,酒店图片以jpg格式提供。因此,我们将只选择那些:
# select src tagimage_src = [x['src'] for x in images]# select only jp format imagesimage_src = [x for x in image_src if x.endswith('.jpg')]for image in image_src: print(image)
现在我们有了一个图像 URL 列表,我们所要做的就是请求图像的内容并将其写入文件。确保以“wb”(写入二进制文件)形式打开文件
image_count = 1for image in image_src: with open('image_'+str(image_count)+'.jpg', 'wb') as f: res = requests.get(image) f.write(res.content) image_count = image_count+1
您还可以通过页码更新初始页面 URL 并重复请求它们以[url=https://www.ucaiyun.com/]采集大量数据。
页面加载时抓取数据
我们来看看 Steam 社区 Grant Theft Auto V 评论的网页。您会注意到网页的完整内容不会一次性加载。
我们需要向下滚动以在页面上加载更多内容。这是网站 后端开发人员使用的一种称为“延迟加载”的优化技术。
但对我们来说,问题是当我们试图从这个页面抓取数据时,我们只能得到那个页面的有限内容:
一些 网站 还创建了“加载更多”按钮,而不是无休止的滚动想法。只有当您单击按钮时,它才会加载更多内容。内容受限的问题依然存在。那么让我们看看如何抓取这些页面。
导航到目标 URL 并打开“检查元素网络”窗口。接下来点击reload按钮,它会为你记录网络的加载顺序,比如图片加载、API请求、POST请求等。
清除当前记录并向下滚动。您会注意到,当您向下滚动时,页面正在发送对更多数据的请求:
进一步滚动,您将看到 网站 如何发出请求。看下面的网址——只有部分参数值在变化,你可以用简单的Python代码轻松生成这些网址:
您需要按照相同的步骤通过将请求逐页发送到每个页面来获取和存储数据。
尾注
这是使用强大的 BeautifulSoup 库在 Python 中进行网页抓取的简单且适合初学者的介绍。老实说,当我在寻找新项目或需要有关现有项目的信息时,我发现网络抓取非常有用。
注意:如果您想以更结构化的形式学习本教程,我们有一个免费课程,我们将教授 Web 抓取 BeatifulSoup。您可以在此处查看-使用 Python 进行 Web 爬网简介。
如前所述,还有其他库可用于执行网页抓取。我很想听听你最喜欢的图书馆想法(即使你使用 R!),以及你在这个主题上的经验。在下面的评论部分告诉我,我们会与您联系!