selenium+pyquery爬取淘宝商品信息

import re
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from pyquery import PyQuery as pq

KEYWORD = ‘小米手机‘
MAX_PAGE = 3

# 浏览器驱动
browser = webdriver.Chrome()
wait = WebDriverWait(browser,10)

def get_products():
    # 获取网页源代码
    html = browser.page_source
    # 解析
    content = pq(browser.page_source)
    # 得到所有选择的内容
    items = content(‘#mainsrp-itemlist .m-itemlist .grid.g-clearfix .item‘).items()
    for item in items:
        product = {
            ‘image‘:item.find(‘.pic .img‘).attr(‘data-src‘),
            ‘price‘:item.find(‘.price‘).text().strip(),
            ‘deal‘:item.find(‘.deal-cnt‘).text(),
            ‘title‘:item.find(‘.title‘).text(),
            ‘shop‘:item.find(‘.shop‘).text(),
            ‘location‘:item.find(‘.location‘).text()
        }

        print(‘--------{}----------\n‘.format(product))

def index_page(page):
    ‘‘‘
    抓取索引页
    :param page:
    :return:
    ‘‘‘
    print(10*‘-‘,‘正在抓取第{}页‘.format(page),10*‘-‘)
    try:
        url = ‘https://s.taobao.com/search?q={}‘.format(KEYWORD)
        print(url)
        browser.get(url)
        # 如果抓取的不是第一页,进行跳页操作
        if page > 1:
            input = wait.until(EC.presence_of_element_located((
                By.CSS_SELECTOR,‘#mainsrp-pager > div > div > div > div.form > input‘
            )))
            submit = wait.until(EC.element_to_be_clickable((
                By.CSS_SELECTOR,‘#mainsrp-pager > div > div > div > div.form > span.btn.J_Submit‘
            )))
            input.clear()
            input.send_keys(page)
            submit.click()
        # 等待页面加载完成(当前高亮页码是page)
        wait.until(EC.text_to_be_present_in_element((
            By.CSS_SELECTOR,‘#mainsrp-pager > div > div > div > ul > li.item.active > span‘
        ),str(page)))
        # 等待所有商品信息加载完成
        wait.until(EC.presence_of_element_located((
            By.CSS_SELECTOR,‘#mainsrp-itemlist .m-itemlist .grid.g-clearfix .item‘)
        ))
        get_products()
    except TimeoutException:
        index_page()

def main():
    # 遍历每一页
    for page in range(1,MAX_PAGE+1):
        index_page(page)

原文地址:https://www.cnblogs.com/ray-mmss/p/9385927.html

时间: 2024-10-13 20:38:11

selenium+pyquery爬取淘宝商品信息的相关文章

利用Selenium爬取淘宝商品信息

一.  Selenium和PhantomJS介绍 Selenium是一个用于Web应用程序测试的工具,Selenium直接运行在浏览器中,就像真正的用户在操作一样.由于这个性质,Selenium也是一个强大的网络数据采集工具,其可以让浏览器自动加载页面,这样,使用了异步加载技术的网页,也可获取其需要的数据. Selenium模块是Python的第三方库,可以通过pip进行安装: pip3 install selenium Selenium自己不带浏览器,需要配合第三方浏览器来使用.通过help命

python基础项目实战:selenium控制浏览器爬取淘宝商品信息

今天为大家介绍一个Python利用selenium打开浏览器的方式来爬取淘宝商品的信息,下面就来看看,关于selenium的知识点,是如何做到控制浏览器获取网站的信息 导入第三方库 关键词搜索 抓取索引页 大家在学python的时候肯定会遇到很多难题,以及对于新技术的追求,这里推荐一下我们的Python学习扣qun:784758214,这里是python学习者聚集地!!同时,自己是一名高级python开发工程师,从基础的python脚本到web开发.爬虫.django.数据挖掘等,零基础到项目实

Python 爬取淘宝商品信息和相应价格

!只用于学习用途! plt = re.findall(r'\"view_price\"\:\"[\d\.]*\"',html) :获得商品价格和view_price字段,并保存在plt中 tlt = re.findall(r'\"raw_title\"\:\".*?\"',html) :获得商品名称和raw_price字段,并保存在tlt中 price = eval(plt[i].split(':')[1]) :使用冒号分隔键

利用Python爬虫爬取淘宝商品做数据挖掘分析实战篇,超详细教程

项目内容 本案例选择>> 商品类目:沙发: 数量:共100页  4400个商品: 筛选条件:天猫.销量从高到低.价格500元以上. 项目目的 1. 对商品标题进行文本分析 词云可视化 2. 不同关键词word对应的sales的统计分析 3. 商品的价格分布情况分析 4. 商品的销量分布情况分析 5. 不同价格区间的商品的平均销量分布 6. 商品价格对销量的影响分析 7. 商品价格对销售额的影响分析 8. 不同省份或城市的商品数量分布 9.不同省份的商品平均销量分布 注:本项目仅以以上几项分析为

使用Selenium爬取淘宝商品

import pymongo from selenium import webdriver from selenium.common.exceptions import TimeoutException from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.wait im

Selenium爬取淘宝商品概要入mongodb

准备: 1.安装Selenium:终端输入 pip install selenium 2.安装下载Chromedriver:解压后放在…\Google\Chrome\Application\:如果是Mac,可放入/usr/locl/bin,并将此目录放入环境变量 3.安装pyquery:终端输入 pip install pyquery 4.安装pymongo:终端输入 pip install pymongo 5.安装MongoDB的PyCharm插件:Preferences——Plugins——

Python3爬虫爬取淘宝商品数据

这次的主要的目的是从淘宝的搜索页面获取商品的信息.其实分析页面找到信息很容易,页面信息的存放都是以静态的方式直接嵌套的页面上的,很容易找到.主要困难是将信息从HTML源码中剥离出来,数据和网页源码结合的很紧密,剥离数据有一定的难度. 然后将获取的信息写入excel表格保存起来,这次只爬取了前面10页 的内容.在运行代码的过程中发现,30页后面的数据有问题,出现了手机价格为0的情况,这是不符合实际的,码也没有写错误处理的代码. 这次先写个粗略的,有点凌乱的感觉,下次有时间再系统的整理整理吧. im

python 爬取淘宝模特信息

通过本篇博文,介绍一下我对指定信息进行爬取的时候的思路,顺便贴一下代码. 一.首先获取想要爬取的网站的url链接的规则变化 可以看出来该网站页面的url结构简单,变化的只是https://mm.taobao.com/json/request_top_list.htm?page= page的值 二.对网站页面的DOM树的结构进行分析,方便我们获取我们想要的内容信息, 我写了个简单的网页分析脚本analyze.py:用来输出DOM树,方便我后面做筛选. # -*- coding:utf-8 -*-

爬虫实例之selenium爬取淘宝美食

这次的实例是使用selenium爬取淘宝美食关键字下的商品信息,然后存储到MongoDB. 首先我们需要声明一个browser用来操作,我的是chrome.这里的wait是在后面的判断元素是否出现时使用,第二个参数为等待最长时间,超过该值则抛出异常. browser = webdriver.Chrome() wait = WebDriverWait(browser,10) 声明好之后就需要进行打开网页.进行搜索的操作. #使用webdriver打开chrome,打开淘宝页面,搜索美食关键字,返回