请选择 进入手机版 | 继续访问电脑版
搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机

Python爬虫爬取淘宝,京东商品信息

[复制链接]
查看: 27|回复: 0

2万

主题

2万

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
74927
发表于 2020-9-15 22:05 | 显示全部楼层 |阅读模式
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。
使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载
pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/
(注)-i 后面是pip使用临时清华源下载 比较快  使用pip原来的源很慢所以做了一个换源处理
chromedriver下载地址:http://chromedriver.storage.googleapis.com/index.html找到与自己的谷歌游览器对应版本的版本版本对应关系这篇文章里面有:https://blog.csdn.net/BinGISer/article/details/88559532
京东流程。。。淘宝类似(就是多了一个登录验证)
PS:很多人在学习Python的过程中,往往因为遇问题解决不了或者没好的教程从而导致自己放弃,为此我整理啦从基础的python脚本到web开发、爬虫、django、数据挖掘等【PDF等】需要的可以进Python全栈开发交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目可拿,不懂的问题有老司机解决哦,一起相互监督共同进步
一,要找到商场地址:https://www.jd.com/
二,模拟正常的查询(正常查询商品步骤:输入商品名,点击搜索,下拉查看商品,点击下一页查看更多的商品)怎么来的我不去做详细的说明(懒得打字,能用就行,懒得去做文章教人,实在想学习加我扣扣讨论)直接上代码,能看懂就看,看不懂的可以加扣扣:2511217211一起讨论(加好友验证备注:讨论)

爬取京东商品信息代码:
from selenium import webdriver
from time import sleep
import re
import os


# 搜索商品
def search_products():
    # 输入商品名字
    driver.find_element_by_xpath('//*[@id="key"]').send_keys(keyword)
    # 点击搜索
    driver.find_element_by_xpath('//*[@]/button').click()
    sleep(10)
    token = driver.find_element_by_xpath('//*[@id="J_bottomPage"]/span[2]/em[1]/b').text
    # 0代表所有匹配到的数字
    token = int(re.compile('(\d+)').search(token).group(1))
    # 返回总页数
    return token


# 下拉下滑条,加载数据
def drop_down():
    for x in range(1, 11, 2):
        sleep(1)
        j = x / 10
        js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight * %f' % j
        driver.execute_script(js)


# 获取商品信息
def get_product():
    lis = driver.find_elements_by_xpath('//*[@]/li[@]')
    for li in lis:
        price = li.find_element_by_xpath('.//div[@]/strong/i').text + '元'
        info = li.find_element_by_xpath('.//div[@]/a/em').text + li.find_element_by_xpath(
            './/div[@]/a').get_attribute('title')
        p_commit = li.find_element_by_xpath('.//div[@]/strong/a').text
        p_shopnum = li.find_element_by_xpath('.//div[@]/*').text
        p_img = li.find_element_by_xpath('.//div[@]/a/img').get_attribute('src')
        print(info, price, p_commit, p_shopnum, p_img, sep='|')


# 翻页
def next_page():
    token = search_products()
    num = 1
    while (num != token):
        driver.get('https://search.jd.com/Search?keyword={}&page={}'.format(keyword, 2 * num - 1))
        driver.implicitly_wait(10)
        num += 1
        drop_down()
        get_product()


if __name__ == "__main__":
    keyword = input('输入你想查找的商品名字:')
    driver_path = os.path.abspath(os.path.join(os.getcwd(), "..")) + "/Drive/chromedriver.exe"
    driver = webdriver.Chrome(driver_path)
    # 窗口最大化,防止数据丢失
    driver.maximize_window()
    driver.get('https://www.jd.com/')
    next_page()
爬取淘宝信息的代码from selenium import webdriverfrom time import sleep
import re
import os


# 搜索商品
def search_products():
    driver.find_element_by_xpath('//*[@id="q"]').send_keys(keyword)
    driver.find_element_by_xpath('//*[@id="J_TSearchForm"]/div[1]/button').click()
    sleep(10)
    token = driver.find_element_by_xpath('//*[@id="mainsrp-pager"]/div/div/div/div[1]').text
    # 0代表所有匹配到的数字
    token = int(re.compile('(\d+)').search(token).group(1))
    return token


# 下拉下滑条,加载数据
def drop_down():
    for x in range(1, 11, 2):
        sleep(1)
        j = x / 10
        js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight * %f' % j
        driver.execute_script(js)


# 获取商品信息
def get_product():
    lis = driver.find_elements_by_xpath('//div[@]/div[@]')
    for li in lis:
        info = li.find_element_by_xpath('.//div[@]').text
        price = li.find_element_by_xpath('.//a[@]').get_attribute('trace-price') + '元'
        deal = li.find_element_by_xpath('.//div[@]').text
        image = li.find_element_by_xpath('.//div[@]/a/img').get_attribute('src')
        name = li.find_element_by_xpath('.//div[@]/a/span[2]').text
        site = li.find_element_by_xpath('.//div[@]').text
        print(info, price, deal, name, site, image, sep='|')


# 翻页
def next_page():
    token = search_products()
    num = 0
    while (num != token):
        driver.get('https://s.taobao.com/search?q={}&s={}'.format(keyword, 44 * num))
        driver.implicitly_wait(10)
        num += 1
        drop_down()
        get_product()


if __name__ == "__main__":
    keyword = input('输入你想查找的商品名字:')
    driver_path = os.path.abspath(os.path.join(os.getcwd(), ".."))+"/Drive/chromedriver.exe"
    driver = webdriver.Chrome(driver_path)
    # 窗口最大化,防止数据丢失
    driver.maximize_window()
    driver.get('https://www.taobao.com/')
    next_page()

———
很多人在学习Python的过程中,往往因为遇问题解决不了或者没好的教程从而导致自己放弃,为此我整理啦从基础的python脚本到web开发、爬虫、django、数据挖掘等【PDF等】需要的可以进Python全栈开发交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目可拿,不懂的问题有老司机解决哦,一起相互监督共同进步
本文的文字及图片来源于网络加上自己的想法,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

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

本版积分规则

技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表