Python应用短文,如何自制一个简易的网络爬虫

liftword3个月前 (02-21)技术文章45

转载说明:原创不易,未经授权,谢绝任何形式的转载

网络爬虫是一种快速从网站提取数据并将其用于自己的项目需求的好方法。在这篇文章中,您将学习如何使用Python制作网络爬虫(抓取网页数据)。

1、引入模块

第一步是导入您的网络爬虫所需的模块。我们将在此示例中使用requests,BeautifulSoup和json。

import requests
from bs4 import BeautifulSoup
import json

如何安装 BeautifulSoup 和 json?

pip install requests
pip install beautifulsoup4

2、设置要抓取的URL

接下来,我们需要设置我们将要爬取的URL。这个例子将会爬取CDKeys网站上的产品价格。

url = 'https://www.cdkeys.com/pc'

3、发送请求 & 解析 HTML

设置URL后,我们需要使用Requests库和BeautifulSoup发送请求并解析HTML响应。

response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')

4、选择数据

现在我们已经解析了HTML,我们需要选择我们感兴趣的从页面中提取的数据。在这个例子中,我们将选择每个产品的原始价格字段和现在售价。

查看网页对应HTML源文件,产品列表对应的每个产品标签是 li.product-item

原始价格对应的字段是:span[data-price-type="oldPrice"] span

基于这个分析,我们开始编写代码:

oldPrices = soup.select('span[data-price-type="oldPrice"] span')
products = soup.select('li.product-item')

这里定义的这两个变量,是 list 列表结构。

5、循环遍历产品

最后,我们可以遍历每个产品并提取所需的数据。我们可以使用json模块将HTML属性中的数据转换为JSON。在这个例子中,确实有一个HTML属性,其中包含CDKeys网站上所有产品信息的JSON字符串。通常,您不会这么幸运,而是必须选择特定标签的内部文本或HTML。

for i in range(len(products)):
 # convert the data in the html attributes to json
 prod = json.loads(products[i]['data-impression'])

 # print the product info
 print(f"{prod['name']} - ${prod['price']} - {oldPrices[i].text}")

就是这样! 您现在拥有一个用Python编写的功能正常的网络爬虫! 网络爬虫是一个强大的工具,可以用于许多不同的应用程序,基于这个你可以尝试其它的站点进行学习。

完整代码

import requests
from bs4 import BeautifulSoup
import json

url = 'https://www.cdkeys.com/pc'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
oldPrices = soup.select('span[data-price-type="oldPrice"] span')
products = soup.select('li.product-item')

for i in range(len(products)):
  # convert the data in the html attributes to json
	prod = json.loads(products[i]['data-impression'])
	# print the product info
	print(f"{prod['name']} - ${prod['price']} - {oldPrices[i].text}")

运行后的效果,如下图所示:

使用爬虫工具时,你需要注意这些

  1. 合法性和道德性:确保你的爬虫行为是合法的和道德的。你需要遵循网站的使用条款,确保你的爬虫行为不会侵犯他人的权利或造成不必要的麻烦。
  2. 爬虫速度:避免过度频繁地爬取一个网站。如果你的爬虫速度太快,可能会给网站服务器带来过多的负担,甚至导致服务器宕机。为了避免这种情况,你可以设置合适的时间间隔,避免一次性请求过多的数据。
  3. 数据的处理和储存:确保你妥善地处理和储存你爬取的数据。你需要注意储存数据的格式,以及如何处理数据中的异常值和缺失值。
  4. 爬虫的异常处理:在爬取数据时,可能会遇到各种异常情况,例如网络连接中断、网站返回错误信息等。你需要在爬虫中添加合适的异常处理机制,避免程序因为这些异常情况而崩溃。
  5. 网站的反爬机制:有些网站会采取反爬机制,例如限制访问频率、添加验证码等。为了避免被网站识别为爬虫,你需要了解这些反爬机制,并相应地进行处理。
  6. 爬虫的隐私保护:在爬取数据时,你需要保护用户的隐私。你需要避免收集用户的敏感信息,例如姓名、地址、电话号码等。如果你需要爬取这些敏感信息,需要获得用户的明确授权。

在使用Python工具爬取网络数据时,需要遵循合法性、道德性和隐私保护原则,同时注意爬虫速度、数据处理和储存、异常处理和网站反爬机制等方面的问题。

结束

今天的分享就到这里,感谢你的阅读,希望能够帮助到你,文章创作不易,如果你喜欢我的分享,别忘了点赞转发,让更多有需要的人看到,最后别忘记关注「前端达人」,你的支持将是我分享最大的动力,后续我会持续输出更多内容,敬请期待。

相关文章

Python实现一个基础爬虫?_用python做一个爬虫

Python爬虫技术就是指通过Python语言来编写一些自动化的数据处理程序从网页上来获取自己想要的数据,我们可以通过Python爬虫来获取公开网页上的数据,对数据进行分析、存储、数据可视化展示等操作...

什么是Python爬虫?一篇文章带你全面了解爬虫

一、什么叫爬虫爬虫,又名“网络爬虫”,就是能够自动访问互联网并将网站内容下载下来的程序。它也是搜索引擎的基础,像百度和GOOGLE都是凭借强大的网络爬虫,来检索海量的互联网信息的然后存储到云端,为网友...

Python爬虫有哪些应用场景?_python爬虫的优缺点分析

随着互联网信息的“爆炸”,网络爬虫渐渐为人们所熟知,并被应用到了社会生活的众多领域。作为一种自动采集网页数据的技术,很多人其实并不清楚网络爬虫具体能应用到什么场景。事实上,大多数依赖数据支撑的应用场景...

Python爬虫超详细讲解(零基础入门,老年人都看得懂)

Python爬虫超详细讲解(零基础入门,老年人都看得懂)

先看后赞,养成习惯。点赞收藏,人生辉煌。讲解我们的爬虫之前,先概述关于爬虫的简单概念(毕竟是零基础教程)爬虫网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一...

python爬虫经典案例,看完这一篇就够了

urllib2urllib2是Python中用来抓取网页的库,urllib2 是 Python2.7 自带的模块(不需要下载,导入即可使用)在python2.x里面有urllib和urllib2;在p...

分享一个使用Python网络爬虫抓取百度关键词和链接的代码

分享一个使用Python网络爬虫抓取百度关键词和链接的代码唉,今天真是累死我了,下班回家还得给你们写教程。不过说实话,这个爬虫小玩意儿还挺有意思的,咱们来聊聊呗。我记得刚入行那会儿,对爬虫可是又爱又恨...