【python爬虫】闲鱼爬虫,可以爬取商品

这篇具有很好参考价值的文章主要介绍了【python爬虫】闲鱼爬虫,可以爬取商品。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言

一、介绍

二、爬虫流程

1. 确定关键词并构造URL

2. 发送网络请求

3. 解析HTML并提取数据

4. 保存数据

三、使用代理IP

四、完整代码

五、总结


前言

闲鱼是一个很受欢迎的二手交易平台,但是由于没有开放API,我们需要使用爬虫来获取数据。本文将介绍如何使用Python爬虫爬取闲鱼上的商品信息,包括构造URL、发送网络请求、解析HTML并提取数据以及使用代理IP来进行爬取。如果您需要抓取闲鱼的其他数据,本文也提供了一些参考。

【python爬虫】闲鱼爬虫,可以爬取商品,python,爬虫,开发语言

一、介绍

随着电子商务的兴起,二手交易平台也变得越来越受欢迎。作为淘宝旗下的二手交易平台,闲鱼的日活跃用户已经超过了1亿。因此,对于一些商家和买家来说,闲鱼是一个极具吸引力的平台。

对于我们开发者来说,有时候我们需要从闲鱼上抓取一些数据,比如价格走势,热门商品,关键词排名等等。但是,闲鱼并没有开放API,这就需要我们使用爬虫来获取数据。

本文将详细介绍如何使用Python爬虫爬取闲鱼上的商品信息。我们将主要使用requests库和BeautifulSoup库来完成这个任务。此外,为了避免被闲鱼封禁IP地址,我们还将使用代理IP来进行爬取。

二、爬虫流程

要完成我们的闲鱼爬虫,我们需要掌握以下几个步骤:

1. 确定关键词并构造URL

在爬取闲鱼数据之前,首先我们需要确定要搜索的关键词。这个关键词可以是任何你想要的内容,比如“二手手机”、“二手电脑”等等。

根据我们选择的关键词,我们需要构造一个URL,即闲鱼商品搜索的URL。URL的构造方法如下:

url = "https://2.taobao.com/search/index.htm?q={}&search_type=item&app=shopsearch".format(keyword)

其中,keyword为我们选择的关键词。

2. 发送网络请求

我们使用requests库来发送网络请求:

headers = {
   'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36'}
response = requests.get(url, headers=headers)

在发送请求之前,我们需要设置请求头。这个请求头包含了我们浏览器的信息,这样可以避免被服务器轻易识别为爬虫。

3. 解析HTML并提取数据

我们使用BeautifulSoup库来解析HTML并提取数据:

soup = BeautifulSoup(response.text, 'html.parser')
goods_list = soup.find_all('div', {'class': 'J_MouserOnverReq'})

解析完HTML之后,我们需要找出包含商品信息的标签。我们可以通过查看闲鱼网页的源代码,找到所有商品信息都被包含在一个class为“J_MouserOnverReq”的div中。

4. 保存数据

最后一步,我们需要将爬取到的数据保存下来。这里我们使用csv库将数据保存到csv文件中。

with open('goods_info.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerow(['商品名称', '商品价格', '商品链接'])
    for goods in goods_list:
        title = goods.find('p', {'class': 'item-title'}).text.strip()
        price = goods.find('p', {'class': 'price'}).text.strip()
        link = goods.find('a', {'class': 'item-link'}).get('href')
        writer.writerow([title, price, link])

通过使用以上四个步骤,我们可以完成闲鱼商品信息的爬虫。

三、使用代理IP

由于频繁的发送网络请求会使服务器怀疑我们是爬虫,并且封禁我们的IP地址,所以我们需要使用代理IP来隐藏我们的真实IP地址。

我们可以从代理IP网站上获取代理IP。这里我们使用站大爷的API,可以通过以下的代码来获取代理IP:

def get_proxies():
    response = requests.get("http://ip.zdaye.com/dayProxy.html")
    soup = BeautifulSoup(response.text, 'html.parser')
    trs = soup.find_all('tr')
    proxies = []
    for tr in trs[1:]:
        tds = tr.find_all('td')
        ip = tds[0].text.strip()
        port = tds[1].text.strip()
        protocol = tds[3].text.strip().lower()
        proxies.append("{}://{}:{}".format(protocol, ip, port))
    return proxies

该函数会返回一个代理IP池。

我们可以在发送网络请求的时候使用代理IP,代码如下:

proxies = {
    "http": random.choice(get_proxies()),
    "https": random.choice(get_proxies())
}

response = requests.get(url, headers=headers, proxies=proxies)

在构造requests对象的时候,我们传入proxies参数,代表我们使用一个代理IP来发送网络请求。

四、完整代码

import csv
import random
import requests
from bs4 import BeautifulSoup


def get_proxies():
    """
    获取代理IP
    """
    response = requests.get("http://ip.zdaye.com/dayProxy.html")
    soup = BeautifulSoup(response.text, 'html.parser')
    trs = soup.find_all('tr')
    proxies = []
    for tr in trs[1:]:
        tds = tr.find_all('td')
        ip = tds[0].text.strip()
        port = tds[1].text.strip()
        protocol = tds[3].text.strip().lower()
        proxies.append("{}://{}:{}".format(protocol, ip, port))
    return proxies


def get_goods_info(keyword):
    """
    爬取商品信息
    """
    url = "https://2.taobao.com/search/index.htm?q={}&search_type=item&app=shopsearch".format(keyword)

    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
                      'Chrome/58.0.3029.96 Safari/537.36'}
    proxies = {
        "http": random.choice(get_proxies()),
        "https": random.choice(get_proxies())
    }

    response = requests.get(url, headers=headers, proxies=proxies)

    soup = BeautifulSoup(response.text, 'html.parser')
    goods_list = soup.find_all('div', {'class': 'J_MouserOnverReq'})

    with open('goods_info.csv', 'w', newline='') as f:
        writer = csv.writer(f)
        writer.writerow(['商品名称', '商品价格', '商品链接'])
        for goods in goods_list:
            title = goods.find('p', {'class': 'item-title'}).text.strip()
            price = goods.find('p', {'class': 'price'}).text.strip()
            link = goods.find('a', {'class': 'item-link'}).get('href')
            writer.writerow([title, price, link])


if __name__ == '__main__':
    get_goods_info('二手手机')

五、总结

本文介绍了如何使用Python爬虫爬取闲鱼上的商品信息,并且使用代理IP防止被封禁IP地址。如果您还需要爬取其他数据,比如评论、店铺信息等等,您可以根据本文提到的方法进行尝试。文章来源地址https://www.toymoban.com/news/detail-721215.html

到了这里,关于【python爬虫】闲鱼爬虫,可以爬取商品的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 爬虫——有关抖音商品数据的爬取(蝉妈妈数据平台)

    抖音带货的兴起,让抖音电商一跃成为与淘宝电商、京东电商等电商平台共同争夺电商市场的存在,与淘宝电商、京东电商等电商平台相比,抖音电商拥有独特的优势,抖音以短视频的形式能够带来巨大的流量和热度,抖音以此为基础带来全新的带货方式——短视频带货,除

    2024年02月08日
    浏览(62)
  • 爬虫之牛刀小试(十):爬取某宝手机商品的销量,价格和店铺

    首先淘宝需要登录,这一点如果用selenium如何解决,只能手动登录?如果不用selenium,用cookies登录也可。但是验证码又是一个问题,现在的验证码五花八门,难以处理。 我们回到正题,假设你已经登录上淘宝了,接着我们需要找到输入框和搜索按钮,输入“手机”,点击搜索

    2024年04月10日
    浏览(62)
  • Python爬虫学习笔记:1688商品详情API 开发API接口文档

      1688API接口是阿里巴巴集团推出的一种开放平台,提供了丰富的数据接口、转换工具以及开发资源,为开发者提供了通用的应用接口及大量数据资源,支持开发者在1688上进行商品搜索、订单管理、交易报表及物流等方面的操作。 1688API接口主要包含以下几类: 商品API:提供

    2024年02月16日
    浏览(42)
  • 用python语言爬虫爬取微博评论--上--初步爬虫(超详细版,大学生不骗大学生)

    目录 一、找到页面  二、学会使用检查元素 2.1 打开检查元素界面 2.2 找到所有评论所在的位置 2.2.1 搜索评论 2.2.2  找到data表 三、基础部分代码实现 ​​​​​​​ 全部已经更完(下面两个链接是中和下) https://blog.csdn.net/m0_68325382/article/details/137234661?spm=1001.2014.3001.5502 爬

    2024年04月10日
    浏览(56)
  • 【Python爬虫开发实战①】使用urllib以及XPath爬取可爱小猫图片

    个人主页 :为梦而生~ 关注我一起学习吧! 专栏 :python网络爬虫从基础到实战 欢迎订阅!后面的内容会越来越有意思~ 往期推荐 : 【Python爬虫开发基础⑦】urllib库的基本使用 【Python爬虫开发基础⑧】XPath库及其基本用法 我们在之前已经有8篇文章讲述基础知识了,下面我们

    2024年02月11日
    浏览(73)
  • 【Python爬虫开发实战②】使用urllib以及jsonpath爬取即将上映电影信息

    🚀 个人主页 :为梦而生~ 关注我一起学习吧! 💡 专栏 :python网络爬虫从基础到实战 欢迎订阅!后面的内容会越来越有意思~ 💡 往期推荐 : ⭐️首先,我们前面讲了多篇基础内容: 【Python爬虫开发基础④】爬虫原理 【Python爬虫开发基础⑤】HTML概述与基本标签详解 【P

    2024年02月12日
    浏览(48)
  • 一键搜索闲鱼商品详情,快速找到心仪的宝贝

    在如今快节奏的生活中,我们总是寻求更加便捷的方式来满足我们的需求。而对于喜欢在闲鱼平台上购物的用户来说,一键搜索闲鱼商品详情,简直就是一种福音。联讯数据,这一功能使我们能够以更高效的方式找到心仪的宝贝,无需繁琐的操作和浪费时间。 什么是一键搜索

    2024年01月24日
    浏览(47)
  • Python爬取商品评价-京东

    1.数据采集逻辑 在进行数据采集之前,明确哪些数据为所需,制定数据Schema为爬取工作做出要求,并根据数据Schema制定出有针对性的爬取方案和采集逻辑。 2.数据Schema 3.数据爬取 抓取平台任一商品的评论信息,此案例抓取的商品是某一店铺的车厘子评价信息。 评论信息是由

    2024年02月11日
    浏览(32)
  • 闲鱼宝库亮相!闲鱼商品详情关键词搜索电商API接口助你畅享无尽好货!

    随着互联网的快速发展,电商平台的崛起已经改变了人们的购物习惯。而在众多电商平台中,闲鱼作为一款社区二手交易平台,一直备受用户喜爱。如今,闲鱼宝库正式亮相,为用户带来了更加全面、详细的商品详情搜索电商API接口,联讯数据助你畅享无尽好货。 宝库

    2024年01月16日
    浏览(58)
  • 使用python爬取淘宝商品信息

    要使用Python爬取淘宝商品信息,您可以按照以下步骤: 安装必要的库 您需要安装Python的requests库和BeautifulSoup库。 发送请求并解析HTML页面 使用requests库发送HTTP请求,然后使用BeautifulSoup库解析HTML页面。在这里,我们将以淘宝的\\\"蚊帐\\\"为例。 提取所需的信息 通过分析HTML页面,

    2024年02月15日
    浏览(89)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包