爬取淘宝商品信息

   

目录

一、 网络爬虫概念

二、 网络爬虫流程

三、 爬取商品代码


爬虫作为一项实用性很高的学科,它有着自己的概念与流程,理解它的模式有助于对本设计的探究。

一、 网络爬虫概念

    网络爬虫,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,它们被广泛用于互联网搜索引擎或其他类似网站,可以自动采集所有其能够访问到的页面内容,以获取或更新这些网站的内容和检索方式。从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。

二、 网络爬虫流程

    发起请求:通过url向服务器发起request请求,请求可以包含额外的header信息。

    获取响应内容:如果服务器正常响应,那我们将会收到一个response,response即为我们所请求的网页内容,或许包含HTML,Json字符串或者二进制的数据等。

    解析内容:如果是HTML代码,则可以使用网页解析器进行解析。

    保存数据:可以保存到本地文件

三、 爬取商品代码

#!/usr/bin/env python
# coding: utf-8

# In[1]:


from selenium import webdriver
import time
import re
driver = webdriver.Chrome()
from selenium import webdriver
import time
import csv


# 搜索商品,获取商品页码
def search_product(key_word):
    # 定位输入框
    browser.find_element_by_id("q").send_keys(key_word)
    # 定义点击按钮,并点击
    browser.find_element_by_class_name('btn-search').click()
    # 最大化窗口:为了方便我们扫码
    browser.maximize_window()
    # 等待15秒,给足时间我们扫码
    time.sleep(15)
    # 定位这个“页码”,获取“共100页这个文本”
    page_info = browser.find_element_by_xpath('//div[@class="total"]').text
    # findall()返回的是一个列表,虽然此时只有一个元素它也是一个列表。
    page = re.findall("(\d+)",page_info)[0]
    return page

# 获取数据
def get_data():
    # 通过页面分析发现:所有的信息都在items节点下
    items = browser.find_elements_by_xpath('//div[@class="items"]/div[@class="item J_MouserOnverReq  "]')
    for item in items:
        # 参数信息
        pro_desc = item.find_element_by_xpath('.//div[@class="row row-2 title"]/a').text
        # 价格
        pro_price = item.find_element_by_xpath('.//strong').text
        # 付款人数
        buy_num = item.find_element_by_xpath('.//div[@class="deal-cnt"]').text
        # 旗舰店
        shop = item.find_element_by_xpath('.//div[@class="shop"]/a').text
        # 发货地
        address = item.find_element_by_xpath('.//div[@class="location"]').text
        #print(pro_desc, pro_price, buy_num, shop, address)
        with open('{}.csv'.format(key_word), mode='a', newline='', encoding='utf-8-sig') as f:
            csv_writer = csv.writer(f, delimiter=',')
            csv_writer.writerow([pro_desc, pro_price, buy_num, shop, address])

def main():
    browser.get('https://www.taobao.com/')
    page = search_product(key_word)
    print(page)
    get_data()
    page_num = 1
    while int(page) != page_num:
        print("*" * 20)
        print("正在爬取第{}页".format(page_num + 1))
        browser.get('https://s.taobao.com/search?q={}&s={}'.format(key_word, page_num*44))
        browser.implicitly_wait(15)
        get_data()
        page_num += 1
    print("数据爬取完毕!")

if __name__ == '__main__':
    key_word = input("请输入你要搜索的商品:")
    browser = webdriver.Chrome()
    main()


在搜索框中输入信息,比如口红

则会形成一个口红的csv文件。

  • 7
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
爬取淘宝商品信息一般分为以下步骤: 1. 打开淘宝搜索页面,输入关键词,获取搜索结果页面源代码。 2. 解析搜索结果页面,获取每个商品的链接地址。 3. 访问每个商品链接地址,获取商品详情页面源代码。 4. 解析商品详情页面,获取商品的基本信息和价格信息等。 5. 保存商品信息至本地文件或数据库。 下面是一个基于Python爬取淘宝商品信息的代码示例: ```python import requests from bs4 import BeautifulSoup keyword = '手机' # 搜索关键词 url = f'https://s.taobao.com/search?q={keyword}' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} # 发送请求 response = requests.get(url, headers=headers) # 解析搜索结果页面 soup = BeautifulSoup(response.text, 'html.parser') items = soup.find_all('div', class_='item J_MouserOnverReq ') for item in items: # 获取每个商品的链接地址 link = 'https:' + item.find('a', class_='J_ClickStat')['href'] # 访问商品链接地址 details_response = requests.get(link, headers=headers) # 解析商品详情页面 details_soup = BeautifulSoup(details_response.text, 'html.parser') # 获取商品的基本信息和价格信息等 title = details_soup.find('h3', class_='tb-main-title').text.strip() price = details_soup.find('span', class_='tb-rmb-num').text print(title, price) ``` 需要注意的是,淘宝爬虫有一定的反爬虫机制,为了避免被封IP,可以在发送请求时添加一些随机的等待时间,或者使用代理IP。另外,爬取淘宝商品信息也需要遵守相关法律法规,不得侵犯商家和消费者的权益。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进步小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值