楼主: 时光永痕
1642 0

[数据挖掘新闻] 在Python中使用BeautifulSoup刮取eBay [推广有奖]

  • 0关注
  • 14粉丝

svip3

学术权威

12%

(VIP/贵宾)八级

5%

威望
0
论坛币
26 个
通用积分
57.2238
学术水平
4 点
热心指数
4 点
信用等级
4 点
经验
34180 点
帖子
2732
精华
0
在线时间
321 小时
注册时间
2020-7-21
最后登录
2024-8-1

楼主
时光永痕 学生认证  发表于 2020-9-11 20:29:05 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
在Python中使用BeautifulSoup刮取eBay
尽管亚马逊是电子商务市场的领导者,但eBay在在线零售行业中仍占有相当的份额。在线销售的品牌也应该在eBay上监控价格,以获取竞争优势。
定期从eBay大规模提取数据对于数据科学家来说是一个具有挑战性的问题。这是一个使用python抓取eBay标识手机价格的示例。
让我们想象一个用例,您需要监视某种产品的价格,例如eBay或Aluminum Products的手机。另外,您想可视化要监视的手机上的可用价格范围。此外,您还在考虑使用其他手机,因此您可能还需要比较它们的价格。在此博客中,我们将抓取eBay来收集电话的价格,并在eBay网站上找出它们之间的区别。
Web抓取是一种从Internet收集数据的有效机制。 您还可以 在这里阅读有关Web抓取的不同神话。
逐步刮除eBay
在本节中,我们将引导您逐步完成从  eBay刮取  产品及其价格的过程。
1.选择所需的信息
网页抓取的首要任务是 识别目标网页。这是您需要从中提取所有必需信息的网页。我们将 抓取eBay上的产品列表, 因此我们只需打开eBay网站并在其搜索栏中键入我们的产品,然后按Enter键即可。页面加载完该产品的所有产品列表后,您所需要做的就是从浏览器中提取该URL。该URL将成为我们的目标URL。在我们的情况下,URL为“ https://www.ebay.com/sch/i.html?_from = R40&_nkw = galaxy + note + 8&am ...”。注意该URL中的两个参数,即“ nkw”(新关键字)和“ pgn”(页码)参数。URL中的这些参数定义搜索查询。如果将“ pgn”参数更改为2,则它将打开银河笔记8手机产品列表的第二页;如果将“ nkw”更改为iPhone X,则eBay会搜索iPhone X并向您显示相应的结果。
2.最终确定要提取的标签
完成目标网页的确定后,我们需要了解其HTML布局以抓取结果。这是Web抓取中最重要的部分,而基本的HTML知识是此步骤的先决条件。在目标网页上时,执行“检查元素”并打开开发人员工具窗口,或者仅执行CTRL + SHIFT + I。在新窗口中,您将找到目标网页的源代码。在我们的案例中,所有产品都被称为列表元素,因此我们必须获取所有这些列表。为了获取HTML元素,  我们需要具有与其关联的标识符。它可以是该元素的ID或特定元素的任何类名或任何其他HTML属性。我们使用类名作为标识符。所有列表具有相同的类名,即s-item。经过进一步检查,我们获得了产品名称和产品价格的类别名称,分别是“ s-item__title”和“ s-item__price”。有了这些信息,我们就成功地完成了步骤2!
3.将抓取的数据以结构化格式放置
在拥有提取器/标识符之后,我们只需要从HTML内容中提取特定部分。完成此操作后,我们需要像维护公司一样将数据整理成适当的结构化格式。我们将创建一个表,其中所有产品名称都放在一列中,而它们的价格则放在另一列中。
4.可视化结果(可选)
由于我们要比较两种不同手机的报价,因此我们也将可视化结果。这不是Web抓取的必需步骤,而是更多将收集的数据转变为可操作的见解的过程。我们将绘制方框图,以了解银河Note 8和iPhone 8手机上的价格产品分布。
所需的库和安装
要针对此用例实现Web抓取,您将需要  python,pip  (Python的软件包安装程序)和python中的  BeautifulSoup库  进行Web抓取。您还将需要pandas和numpy库将收集的数据组织成结构化格式。
安装Python和PIP
根据您的操作系统,您可以按照此博客链接在系统中设置python和Pip。
安装美丽的汤库
apt-get install python-bs4
pip install beautifulsoup4
安装pandas和numpy
pip install pandas
pip install numpy
我们已经完成了环境设置,现在可以开始使用python进行抓取了。实现包括前面部分中讨论的步骤。
用于抓取eBay的Python实现
在本节中,我们将执行两个抓取操作,即一个用于iPhone 8,另一个用于银河笔记8手机。这两款手机已经重复实施,以便于理解。更加优化的版本可以将两个单独的报废活动合并为一个,但现在不需要。
为Galaxy Note 8产品报废eBay
item_name = []
prices = []
for i in range(1
    ebayUrl = "https://www.ebay.com/sch/i.html?_from=R40&_nkw=note+8&_sacat=0&_pgn="+str(i)
    r= requests.get(ebayUrl)
    data=r.text
    soup=BeautifulSoup(data)
    listings = soup.find_all('li'
    for listing in listings:
        prod_name=" "
        prod_price = " "
        for name in listing.find_all('h3'
            if(str(name.find(text=True
                prod_name=str(name.find(text=True
                item_name.append(prod_name)
        if(prod_name!=" "):
            price = listing.find('span'
            prod_price = str(price.find(text=True
            prod_price = int(sub("
            prices.append(prod_price)
from scipy import stats
import numpy as np
data_note_8 = pd.DataFrame({"Name":item_name
data_note_8 = data_note_8.iloc[np.abs(stats.zscore(data_note_8["Prices"]))< 3
Galaxy Note 8的收集数据
在Python中使用BeautifulSoup刮取eBay
刮eBay | 注8数据
报废iPhone 8的eBay
item_name = []
prices = []
for i in range(1
    ebayUrl = "https://www.ebay.com/sch/i.html?_from=R40&_nkw=iphone+8_sacat=0_pgn="+str(i)
    r= requests.get(ebayUrl)
    data=r.text
    soup=BeautifulSoup(data)
    listings = soup.find_all('li'
    for listing in listings:
        prod_name=" "
        prod_price = " "
        for name in listing.find_all('h3'
            if(str(name.find(text=True
                prod_name=str(name.find(text=True
                item_name.append(prod_name)
        if(prod_name!=" "):
            price = listing.find('span'
            prod_price = str(price.find(text=True
            prod_price = int(sub("
            prices.append(prod_price)
from scipy import stats
import numpy as np
data_note_8 = pd.DataFrame({"Name":item_name
data_note_8 = data_note_8.iloc[np.abs(stats.zscore(data_note_8["Prices"])) < 3
为iPhone 8收集的数据
在Python中使用BeautifulSoup刮取eBay
刮eBay | iPhone数据
可视化产品价格
现在是时候可视化抓取的结果了。我们将使用箱形图可视化手机的价格分布。箱形图有助于我们直观地看到数值趋势。绿线是收集的价格数据的中位数。该框从数据的Q1四分位数扩展到Q3四分位数,中间有一条线(Q2)。晶须从框的边缘伸出以显示数据范围。
在Python中使用BeautifulSoup刮取eBay
刮eBay | 价格对比
对于iPhone 8,大多数价格在25k-35k印度卢比之间,而大多数Galaxy Note 8手机的价格在25k-30k之间。但是,iPhone 8的价格变化远超过银河笔记8。iPhone8在eBay上的最低售价为15
结论
在此博客中,我们成功地使用 python抓取了两种不同产品及其价格的eBay。我们还比较了Galaxy Note 8和iPhone 8的可用价格,以做出更好的购买决定。无论是在财富500强公司中,还是在您的日常生活中,Web抓取与数据科学相结合都可以用于智能决策。

关注 CDA人工智能学院 ,回复“录播”获取更多人工智能精选直播视频!


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:beautiful python eBay soup Aut

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 14:09