selenium爬取淘宝商品基础数据以及商品详情

目录

  • 网页分析
    • 确定要爬取的数据
    • 分析网页构成
  • 爬取流程
    • 登入
    • 爬取基础数据以及商品详情
    • 爬取基础数据
    • 爬取商品详情
    • 淘宝滑动验证码
  • 保存EXCEL中
  • 完整代码
  • 参考

网页分析

确定要爬取的数据

要爬取的数据如下:
商品基础数据中包括了价格,商品标题,店铺名称,店铺地址

商品详情中的所有数据

商品人气值

商品月销量

商品评价量

分析网页构成

这部分比较基础,就不再赘述,这里主要说一下因为淘宝商品搜索结果中包含淘宝的店铺和天猫的店铺


淘宝店铺中的商品详情为:

天猫的店铺详情如下:

因此定位淘宝商品详情的XPTH为:if WebDriverWait(self.browser, 3, 0.2).until( lambda x: x.find_element_by_xpath('//*[@id="attributes"]/ul')):
定位天猫商品详情的XPTH为:if WebDriverWait(self.browser, 3, 0.2).until( lambda x: x.find_element_by_xpath('//*[@id="J_AttrList"]')):good_info = self.browser.find_element_by_xpath('//*[@id="J_AttrList"]').text
在爬取商品详情时加入判断当前商品是为天猫还是淘宝(如果不这样做使用try来进行的话程序跑的会很慢)

                currentPageUrl = self.browser.current_url#获得当前页面url判断是天猫还是淘宝tianmao="detail.tmall.com"taobao="item.taobao.com"

爬取流程

登入

因为使用淘宝账号登入(淘宝登入界面)时需要使用验证码,所以这里采用曲线救国的方法:采用微博登入选项
首先你需要自己将微博账号与淘宝账号绑定(不会的自行百度)
登入代码块如下:

    def login(self):# 打开网页self.browser.get(self.url)self.browser.maximize_window()# 自适应等待,点击密码登录选项# self.browser.implicitly_wait(30) #智能等待,直到网页加载完毕,最长等待时间为30s#self.browser.find_element_by_xpath('//*[@class="forget-pwd J_Quick2Static"]').click()# 自适应等待,点击微博登录宣传self.browser.implicitly_wait(30)self.browser.find_element_by_xpath('//*[@class="weibo-login"]').click()# 自适应等待,输入微博账号self.browser.implicitly_wait(30)self.browser.find_element_by_name('username').send_keys(weibo_username)# 自适应等待,输入微博密码self.browser.implicitly_wait(30)self.browser.find_element_by_name('password').send_keys(weibo_password)# 自适应等待,点击确认登录按钮self.browser.implicitly_wait(30)self.browser.find_element_by_xpath('//*[@class="btn_tip"]/a/span').click()# 直到获取到淘宝会员昵称才能确定是登录成功taobao_name = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.site-nav-bd > ul.site-nav-bd-l > li#J_SiteNavLogin > div.site-nav-menu-hd > div.site-nav-user > a.site-nav-login-info-nick ')))# 输出淘宝昵称print(taobao_name.text)

这里的weibo_username与weibo_password填自己的微博账号和密码
至此完成了淘宝登入,接下来进行数据的爬取

爬取基础数据以及商品详情

爬取基础数据

        while flag_stop:goods_numer=goods_numer+1time.sleep(2)#尊重淘宝休息一下goods = self.browser.find_elements_by_xpath('//div[contains(@class,"J_MouserOnverReq")]')#规定爬取商品数量for good in goods:if i==400:flag_stop=0#跳出breaki=i+1flag_pingzhong = 0#...#商品各属性price = good.find_element_by_xpath('.//div[2]/div[1]/div/strong').texttitle = good.find_element_by_xpath('.//div[2]/div[2]/a').textshop_name = good.find_element_by_xpath('.//div[2]/div[3]/div[1]/a/span[2]').textorigin = good.find_element_by_xpath('.//div[2]/div[3]/div[2]').textprint("i=",i)print(price, title, shop_name, origin)good.click()#点击商品跳转到商品详情

爬取商品详情

self.browser.switch_to.window(self.browser.window_handles[-1])#切换到商品详情界面currentPageUrl = self.browser.current_url#获得当前页面url判断是天猫还是淘宝tianmao="detail.tmall.com"taobao="item.taobao.com"if tianmao in currentPageUrl:print("天猫")time.sleep(0.2)js = "window.scrollTo(0,1000)"#下滑页面self.browser.execute_script(js)################################################获得商品详情try:if WebDriverWait(self.browser, 3, 0.2).until(lambda x: x.find_element_by_xpath('//*[@id="J_AttrList"]')):good_info = self.browser.find_element_by_xpath('//*[@id="J_AttrList"]').text#################################判断原产地是否包含省份if kw_judge not in good_info:print("不符合规则")i = i - 1self.browser.close()#关闭当前窗口self.browser.switch_to.window(main_driver)#切换至主界面continue  # 忽略这次print(good_info)###############################################获得商品月销try:# if self.browser.find_element_by_xpath('//span[@class="tm-count"]'):# Monthlysales = self.browser.find_element_by_xpath('//span[@class="tm-count"]')if WebDriverWait(self.browser, 3, 0.2).until(lambda x: x.find_element_by_xpath('//span[@class="tm-count"]')):Monthlysales = self.browser.find_element_by_xpath('//span[@class="tm-count"]')Monthlysales_number = Monthlysales.textprint("月销量" + Monthlysales_number)except:print("无月销")######################################################获得商品评价try:if WebDriverWait(self.browser, 3, 0.2).until( lambda x: x.find_element_by_xpath('//*[@id="J_ItemRates"]/div/span[2]')):evaluate = self.browser.find_element_by_xpath(' //*[@id="J_ItemRates"]/div/span[2]')evaluate_number = evaluate.textprint("评价量" + evaluate_number)except Exception as e:print("无评价")print('get button failed: ', e)print("trydiv")#######################################################获得商品人气try:if WebDriverWait(self.browser, 3, 0.2).until( lambda x: x.find_element_by_xpath('// *[ @ id = "J_CollectCount"]')):hotofgood = self.browser.find_element_by_xpath('// *[ @ id = "J_CollectCount"]').texthotofgood_number=re.findall(r"\d+\.?\d*",hotofgood)[0]print("商品人气"+hotofgood_number)except Exception as e:print('get button failed: ', e)sleep(3)#睡眠3s,保证电脑性能能够加载出页面,我之前调成1s会导致页面加载不出来信息获取失败self.browser.close()self.browser.switch_to.window(main_driver)

睡眠3s,保证电脑性能能够加载出页面,我之前调成1s会导致页面加载不出来信息获取失败
对自己电脑有自信的可以调的更低
因为我做的项目中是爬取茶叶,因为淘宝的搜索结果中包含推荐,比如我搜索四川的茶叶,搜索结果中也会推其他地方的茶叶,所以加入了在商品详情中判断省份。若你做的是其他项目具体情况具体分析

下一页跳转:

next_page = WebDriverWait(self.browser, 3, 0.2).until(lambda x: x.find_element_by_xpath('//span[contains(text(),"下一页")]/..'))

这里说一下几个比较关键的函数(若你对其他函数有疑问搜索selenium的用法):
1

find_element_by_xpath('.//div[2]/div[1]/div/strong').text

这个是获得XPTH为.//div[2]/div[1]/div/strong属性下的文本信息
XPTH可以通过右键控制台中你想要获得的地方之后选Copy->Copy Xpath
2

browser.switch_to.window(self.browser.window_handles[-1])

切换到新打开的窗口(新打开的窗口默认值为-1)
3

 self.browser.close()#关闭当前窗口self.browser.switch_to.window(main_driver)#切换至主界面

4
main_driver为主界面的url

WebDriverWait(self.browser, 3, 0.2).until(lambda x: x.find_element_by_xpath('//*[@id="J_AttrList"]')):

这个为寻找Xpth为//*[@id="J_AttrList"]的标签,限时为3s,每0.2s进行一次搜索

5

hotofgood_number=re.findall(r"\d+\.?\d*",hotofgood)[0]

正则表达式,寻找hotofgood中所有数字以数组的形式返回,这里取第一个数字即[0]

淘宝滑动验证码

在爬取中,因为淘宝会识别到是否使用selenium便会给你发滑动验证码,这个时候由于验证码的出现鼠标便无法点击主页面(比如你要爬取商品的具体评论,要首先点击商品评论的按钮,这时就要解决这个验证码的问题)。由于我没有爬取需要二次点击的需求便没有处理这个,因为在验证码加载出来时,页面内容已经加载完毕了。

保存EXCEL中

这里采用Xlwt具体函数搜索Xlwt用法
首先创建EXCEL表后将EXCEL表的表头填入:

     book = xlwt.Workbook(encoding='utf-8')sheet = book.add_sheet('Sheet1')proj = ['商品名', '单价/元', '店铺名称', '店铺位置', '商品月销', '商品评论数','商品人气', '商品详情']for i in range(0, len(proj)):sheet.write(0, i, proj[i])  # 按行插入行标题book.save('Goodsinformation.xls')
  1. 创建工作表对象,并设置编码格式为utf-8

  2. 添加一个sheet表,参数为sheet的表名

  3. sheet.write()是写入内容的方法

    参数一:表示行数

    参数二:表示列数

    参数三:表示要写入的内容

  4. 保存Excel表,注意表名后面要加.xls后缀

在程序中进行数据插入时,由于以循环的方式插入若用上面的方法进行数据插入会导致只保存最后插入的数据。所以这里要用打开EXCEL表的形式进行数据插入

book = xlrd.open_workbook('E:\Teadatapretreatment\Goodsinformation.xls')
book2=copy(book)
sheet = book2.get_sheet(0)

写入操作与上面相同

sheet.write(i, j, text)

最后是保存操作,这个原理是创建一个副表进行最新数据的更新后删除旧表使用副表作为新表。

 os.remove('Goodsinformation.xls')book2_pingzhong.save('Goodsinformation.xls')

完整代码

因为后续团队需求在其中加入了判断是否为品种茶
代码还不够简洁,但是基础功能都完成了

# -*- coding: utf-8 -*-
import os
import random
import re
import time
import urllib.parse
from logging import exceptionimport xlrd
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
# option=webdriver.ChromeOptions()
# option.add_argument("headless")
# driver = webdriver.Chrome(options=option)
from selenium.webdriver import ActionChains
from selenium.webdriver.support.wait import WebDriverWait
from selenium import webdriver
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
from time import sleep
import random
import pyautogui
from splinter.exceptions import ElementDoesNotExist
from selenium.common import exceptions as ex
import xlwtfrom xlutils.copy import copydef dispose_slider():time.sleep(0.2)pyautogui.moveTo(x=1080, y=503, duration=0.25)pyautogui.dragTo(x=1080, y=560, duration=0.5)time.sleep(0.2)pyautogui.moveTo(x=660, y=677, duration=0.25)pyautogui.dragTo(x=1300, y=677, duration=0.8)# 休息0.25秒,表示对淘宝的尊敬time.sleep(0.25)
#定义一个taobao类
class taobao_infos:# 滑块验证处理#对象初始化def __init__(self):url = 'https://login.taobao.com/member/login.jhtml'self.url = urloptions = webdriver.ChromeOptions()options.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2}) # 不加载图片,加快访问速度options.add_experimental_option('excludeSwitches', ['enable-automation']) # 此步骤很重要,设置为开发者模式,防止被各大网站识别出来使用了Seleniumself.browser = webdriver.Chrome(executable_path=chromedriver_path, options=options)self.wait = WebDriverWait(self.browser, 10) #超时时长为10s#登录淘宝def login(self):# 打开网页self.browser.get(self.url)self.browser.maximize_window()# 自适应等待,点击密码登录选项# self.browser.implicitly_wait(30) #智能等待,直到网页加载完毕,最长等待时间为30s#self.browser.find_element_by_xpath('//*[@class="forget-pwd J_Quick2Static"]').click()# 自适应等待,点击微博登录宣传self.browser.implicitly_wait(30)self.browser.find_element_by_xpath('//*[@class="weibo-login"]').click()# 自适应等待,输入微博账号self.browser.implicitly_wait(30)self.browser.find_element_by_name('username').send_keys(weibo_username)# 自适应等待,输入微博密码self.browser.implicitly_wait(30)self.browser.find_element_by_name('password').send_keys(weibo_password)# 自适应等待,点击确认登录按钮self.browser.implicitly_wait(30)self.browser.find_element_by_xpath('//*[@class="btn_tip"]/a/span').click()# 直到获取到淘宝会员昵称才能确定是登录成功taobao_name = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.site-nav-bd > ul.site-nav-bd-l > li#J_SiteNavLogin > div.site-nav-menu-hd > div.site-nav-user > a.site-nav-login-info-nick ')))# 输出淘宝昵称print(taobao_name.text)def crawl_good_buy_data(self):kw = "四川 茶叶"kw_judge="四川"kw_pingzhong1="竹叶青"kw_pingzhong2 = "蒙顶山茶"kw_pingzhong3 = "峨眉毛峰"kw_pingzhong4 = "苦丁茶"kw_pingzhong5 = "川红工夫"kw_pingzhong6 = "巴山雀舌"url = "https://s.taobao.com/search?q={kw}".format(kw=urllib.parse.quote(kw))self.browser.get(url)js = "window.scrollTo(0,document.body.scrollHeight)"self.browser.execute_script(js)main_driver = self.browser.current_window_handleflag_stop=1#while True:goods_numer = -1  # 商品数目i = 0j=0#flag_stop用来跳出循环while flag_stop:goods_numer=goods_numer+1time.sleep(2)goods = self.browser.find_elements_by_xpath('//div[contains(@class,"J_MouserOnverReq")]')#规定爬取商品数量for good in goods:if i==400:flag_stop=0#跳出breaki=i+1flag_pingzhong = 0###################################普通茶book = xlrd.open_workbook('E:\Teadatapretreatment\Goodsinformation.xls')book2=copy(book)sheet = book2.get_sheet(0)##################################品种茶book_pingzhong = xlrd.open_workbook('E:\Teadatapretreatment\品种茶.xls')book2_pingzhong = copy(book_pingzhong)sheet_pingzhong = book2_pingzhong.get_sheet(0)##########################################二次保证返回到了主界面# self.browser.switch_to.window(main_driver)#商品各属性price = good.find_element_by_xpath('.//div[2]/div[1]/div/strong').texttitle = good.find_element_by_xpath('.//div[2]/div[2]/a').textshop_name = good.find_element_by_xpath('.//div[2]/div[3]/div[1]/a/span[2]').textorigin = good.find_element_by_xpath('.//div[2]/div[3]/div[2]').textprint("i=",i)print(price, title, shop_name, origin)sheet.write(i, 0, title)sheet.write(i, 1, price)sheet.write(i, 2, shop_name)sheet.write(i, 3, origin)good.click()#点击商品跳转到商品详情self.browser.switch_to.window(self.browser.window_handles[-1])#切换到商品详情界面currentPageUrl = self.browser.current_url#获得当前页面url判断是天猫还是淘宝tianmao="detail.tmall.com"taobao="item.taobao.com"if tianmao in currentPageUrl:print("天猫")time.sleep(0.2)js = "window.scrollTo(0,1000)"self.browser.execute_script(js)################################################获得商品详情try:# if self.browser.find_element_by_xpath('//div[@class="attributes-list"]').text:# good_info = self.browser.find_element_by_xpath('//div[@class="attributes-list"]').textif WebDriverWait(self.browser, 3, 0.2).until(lambda x: x.find_element_by_xpath('//*[@id="J_AttrList"]')):good_info = self.browser.find_element_by_xpath('//*[@id="J_AttrList"]').text#################################判断原产地是否包含省份if kw_judge not in good_info:print("不符合规则")i = i - 1self.browser.close()self.browser.switch_to.window(main_driver)continue  # 忽略这次print(good_info)sheet.write(i, 7, good_info)###################################判断是否为品种茶if kw_pingzhong1 in good_info or kw_pingzhong2 in good_info or kw_pingzhong3 in good_info or kw_pingzhong4 in good_info or kw_pingzhong5 in good_info or kw_pingzhong6 in good_info:flag_pingzhong=1j=j+1print("为品种茶")else:print("非品种茶")except Exception as e:print("无商品详情")sheet.write(i, 7, "none")print('get button failed: ', e)###############################################获得商品月销try:# if self.browser.find_element_by_xpath('//span[@class="tm-count"]'):# Monthlysales = self.browser.find_element_by_xpath('//span[@class="tm-count"]')if WebDriverWait(self.browser, 3, 0.2).until(lambda x: x.find_element_by_xpath('//span[@class="tm-count"]')):Monthlysales = self.browser.find_element_by_xpath('//span[@class="tm-count"]')Monthlysales_number = Monthlysales.textprint("月销量" + Monthlysales_number)sheet.write(i, 4, Monthlysales_number)except:print("无月销")sheet.write(i, 4, "0")######################################################获得商品评价try:if WebDriverWait(self.browser, 3, 0.2).until( lambda x: x.find_element_by_xpath('//*[@id="J_ItemRates"]/div/span[2]')):evaluate = self.browser.find_element_by_xpath(' //*[@id="J_ItemRates"]/div/span[2]')evaluate_number = evaluate.textprint("评价量" + evaluate_number)sheet.write(i, 5, evaluate_number)except Exception as e:print("无评价")sheet.write(i, 5, "0")print('get button failed: ', e)print("trydiv")#######################################################获得商品人气try:if WebDriverWait(self.browser, 3, 0.2).until( lambda x: x.find_element_by_xpath('// *[ @ id = "J_CollectCount"]')):hotofgood = self.browser.find_element_by_xpath('// *[ @ id = "J_CollectCount"]').texthotofgood_number=re.findall(r"\d+\.?\d*",hotofgood)[0]print("商品人气"+hotofgood_number)sheet.write(i, 6, hotofgood_number)except Exception as e:sheet.write(i, 6, "0")print('get button failed: ', e)os.remove('Goodsinformation.xls')book2.save('Goodsinformation.xls')sleep(3)self.browser.close()self.browser.switch_to.window(main_driver)if taobao in currentPageUrl:print("淘宝")time.sleep(0.2)js = "window.scrollTo(0,1000)"self.browser.execute_script(js)################################################获得商品详情try:# if self.browser.find_element_by_xpath('//div[@class="attributes-list"]').text:# good_info = self.browser.find_element_by_xpath('//div[@class="attributes-list"]').textif WebDriverWait(self.browser, 3, 0.2).until(lambda x: x.find_element_by_xpath('//*[@id="attributes"]/ul')):good_info = self.browser.find_element_by_xpath('//*[@id="attributes"]/ul').textif kw_judge not in good_info:print("不符合规则")i = i - 1self.browser.close()self.browser.switch_to.window(main_driver)continue  # 忽略这次if kw_pingzhong1 in good_info or kw_pingzhong2 in good_info or kw_pingzhong3 in good_info or kw_pingzhong4 in good_info or kw_pingzhong5 in good_info or kw_pingzhong6 in good_info:flag_pingzhong=1j=j+1print("为品种茶")else:print("非品种茶")print(good_info)sheet.write(i, 7, good_info)except Exception as e:print("无商品详情")sheet.write(i, 7, "none")print('get button failed: ', e)######################################################获得商品月销try:# if self.browser.find_element_by_xpath('//span[@class="tm-count"]'):# Monthlysales = self.browser.find_element_by_xpath('//span[@class="tm-count"]')if WebDriverWait(self.browser, 3, 0.2).until(lambda x: x.find_element_by_xpath('//*[@id="J_SellCounter"]')):Monthlysales = self.browser.find_element_by_xpath('//*[@id="J_SellCounter"]')Monthlysales_number = Monthlysales.textprint("月销量" + Monthlysales_number)sheet.write(i, 4, Monthlysales_number)except:print("无月销")sheet.write(i, 4, "0")######################################################获得商品评价try:if WebDriverWait(self.browser, 3, 0.2).until(lambda x: x.find_element_by_xpath('// *[ @ id = "J_RateCounter"]')):evaluate = self.browser.find_element_by_xpath(' // *[ @ id = "J_RateCounter"]')evaluate_number = evaluate.textprint("评价量" + evaluate_number)sheet.write(i, 5, evaluate_number)except Exception as e:print("无评价")sheet.write(i, 5, "0")print('get button failed: ', e)print("trydiv")#######################################################获得商品人气try:if WebDriverWait(self.browser, 3, 0.2).until( lambda x: x.find_element_by_xpath('//*[@id="J_Social"]/ul/li/a/em')):hotofgood = self.browser.find_element_by_xpath('//*[@id="J_Social"]/ul/li/a/em').texthotofgood_number=re.findall(r"\d+\.?\d*",hotofgood)[0]print("商品人气"+hotofgood_number)sheet.write(i, 6, hotofgood_number)except Exception as e:sheet.write(i, 6, "0")print('get button failed: ', e)os.remove('Goodsinformation.xls')book2.save('Goodsinformation.xls')sleep(3)self.browser.close()self.browser.switch_to.window(main_driver)if flag_pingzhong == 1:sheet_pingzhong.write(j, 0, title)sheet_pingzhong.write(j, 1, price)sheet_pingzhong.write(j, 2, shop_name)sheet_pingzhong.write(j, 3, origin)sheet_pingzhong.write(j, 4, Monthlysales_number)sheet_pingzhong.write(j, 5, evaluate_number)sheet_pingzhong.write(j, 6, hotofgood_number)sheet_pingzhong.write(j, 7, good_info)os.remove('品种茶.xls')book2_pingzhong.save('品种茶.xls')try:next_page = WebDriverWait(self.browser, 3, 0.2).until(lambda x: x.find_element_by_xpath('//span[contains(text(),"下一页")]/..'))except Exception as e:print(e)else:next_page.click()self.browser.quit()if __name__ == "__main__":# 使用之前请先查看当前目录下的使用说明文件README.MD# 使用之前请先查看当前目录下的使用说明文件README.MD# 使用之前请先查看当前目录下的使用说明文件README.MDchromedriver_path = "" #改成你的chromedriver的完整路径地址weibo_username = "" #改成你的微博账号weibo_password = "" #改成你的微博密码a = taobao_infos()a.login() #登录################创建excel表book = xlwt.Workbook(encoding='utf-8')sheet = book.add_sheet('Sheet1')proj = ['商品名', '单价/元', '店铺名称', '店铺位置', '商品月销', '商品评论数','商品人气', '商品详情']for i in range(0, len(proj)):sheet.write(0, i, proj[i])  # 按行插入行标题book.save('Goodsinformation.xls')book_pingzhong = xlwt.Workbook(encoding='utf-8')sheet_pingzhong = book_pingzhong.add_sheet('Sheet1')for i in range(0, len(proj)):sheet_pingzhong.write(0, i, proj[i])  # 按行插入行标题book_pingzhong.save('品种茶.xls')a.crawl_good_buy_data() #爬取淘宝

参考

爬取淘宝商品信息
利用Selenium爬取淘宝商品
python+selenium通过添加cookie获取淘宝网的登录态
使用selenium爬取淘宝页面中的商品信息
淘宝天猫评论爬取,简单的办法完成滑动验证
selenium跳过webdriver检测并爬取淘宝我已购买的宝贝数据
评淘宝小米10爬行“蜘蛛+皮托圭”,Splinterpyautogui,爬取,评论
python(15)提取字符串中的数字
如何在Python中创建Excel表格

selenium爬取淘宝商品基础数据以及商品详情(茶叶数据)相关推荐

  1. [Python3网络爬虫开发实战] 7-动态渲染页面爬取-4-使用Selenium爬取淘宝商品

    在前一章中,我们已经成功尝试分析Ajax来抓取相关数据,但是并不是所有页面都可以通过分析Ajax来完成抓取.比如,淘宝,它的整个页面数据确实也是通过Ajax获取的,但是这些Ajax接口参数比较复杂,可 ...

  2. 利用Selenium爬取淘宝商品信息

    文章来源:公众号-智能化IT系统. 一.  Selenium和PhantomJS介绍 Selenium是一个用于Web应用程序测试的工具,Selenium直接运行在浏览器中,就像真正的用户在操作一样. ...

  3. Python + selenium 爬取淘宝商品列表及商品评论 2021-08-26

    Python + selenium 爬取淘宝商品列表及商品评论[2021-08-26] 主要内容 登录淘宝 获取商品列表 获取评论信息 存入数据库 需要提醒 主要内容 通过python3.8+ sel ...

  4. 使用Selenium爬取淘宝商品(绕过登录页面)

    文章目录 1.准备工作 2.接口分析 3.页面分析 4.获取商品列表 5.解析商品列表 6.保存到MongoDB 7.遍历每页 8.异常处理(绕过登录反爬机制) 方法一:修改ChromeDriver. ...

  5. python爬虫——用selenium爬取淘宝商品信息

    python爬虫--用selenium爬取淘宝商品信息 1.附上效果图 2.淘宝网址https://www.taobao.com/ 3.先写好头部 browser = webdriver.Chrome ...

  6. 使用selenium爬取淘宝实战.md

    ##使用selenium爬取淘宝实战 确定要爬取的内容 爬取左侧的一级类型(女装/男装/内衣等等),和右侧的二级类型(秋上新/连衣裙等等) 导入selenium 在这之前需要安装webdriver 可 ...

  7. 爬虫学习笔记——Selenium爬取淘宝商品信息并保存

    在使用selenium来模拟浏览器操作,抓取淘宝商品信息前,先完成一些准备工作. 准备工作:需要安装selenium,pyquery,以及Chrome浏览器并配置ChromeDriver. 安装sel ...

  8. 利用Selenium爬取淘宝商品

    淘宝页面数据是采用Ajax获取的,但是这些Ajax接口参数比较复杂,可能会加入加密秘钥.对于这种页面,最方便的方法是通过selenium.可以用Selenium来模拟浏览器操作,抓取淘宝商品信息. 1 ...

  9. 使用自动化工具selenium爬取淘宝数据!这个框架太牛逼了!

    准备工作 爬虫所需的库和浏览器驱动 本次爬虫所需要的库 selenium #可使用pip命令安装 pip install selenium csv re time 安装浏览器驱动 以谷歌浏览器为例,在 ...

最新文章

  1. javascript写各种排序算法
  2. .ajax跳过不执行,使用ajax跳过路由器登录界面
  3. Spring Boot——RabbitMQ
  4. c++矩阵转置_lt;读书笔记4gt; 稀疏矩阵基础算法
  5. mysql 时间 between查询 索引吗_Mysql: mysql between 日期索引 索引问题-日期索引使用...
  6. c#连mysql的latin1编码乱码问题
  7. java的如何创建js_[Java教程]JS创建事件的三种方式(实例)
  8. 如何导入asl文件?ps制作知识
  9. 矩阵的行简化阶梯型和标准型
  10. AngularJs checkbox绑定
  11. QT -- 多线程 —— moveToThread
  12. Pandas数据分析14——pandas数据框的多层索引
  13. 山东专升本-计算机课堂笔记之第一章 信息技术与计算机文化(一)
  14. 人类小行星探测任务回顾
  15. 乔治·霍兹(George Hotz):特斯拉、谷歌最可怕的对手!
  16. svchost.exe占用cpu100 的解决方法
  17. 百度地图使用(保姆式教学)
  18. 制造生产模式的演变与敏捷制造
  19. WiFi AuthenticationOmnipeek抓包分析
  20. weex项目实战篇(二)

热门文章

  1. 矩阵的等价,相似,合同,正定判定和关系
  2. 【threejs】实现星空、星链、太阳系、线等效果的参考
  3. WSL2安装、WSL2 GUI
  4. [古藉分享]命理经典《渊海子平》(古本五卷本)
  5. js清空本地存储_「IPFS红岸智能」js-IPFS 0.50.0性能再次提升
  6. 优先级队列 Python
  7. 计算机文化周,第十一届计算机文化节如期而至
  8. Xen Server虚拟机删除数据的恢复过程
  9. 国内外著名安全站点 经典的东西
  10. PR字幕模板|优雅的引言标题文字动画视频素材MOGRT动态图形模板