Python爬虫入门——3.6 Selenium 爬取淘宝信息

上一节我们介绍了Selenium工具的使用,本节我们就利用Selenium跟Chrome浏览器结合来爬取天猫羽绒服商品的信息,当然你可以用相同的方法来爬取淘宝其他商品的信息。我们要爬取羽绒服的价卖家信息,并将其打印

from selenium import webdriver
#from selenium.webdriver.chrome.options import Options
#from selenium.webdriver import ActionChains
from lxml import etree
import time

#配置Chrome Headless模式
#chrome_options = Options()
#chrome_options.add_argument('--headless')
#chrome_options.add_argument('--disable-gpu')
#指定浏览器
#driver = webdriver.Chrome(chrome_options = chrome_options)
#定义浏览器,为有头模式
driver = webdriver.Chrome()
#将浏览器页面最大化
driver.maximize_window()


#主程序
if __name__ == "__main__":
    #淘宝登录界面
    url = 'https://login.taobao.com/member/login.jhtml'
    driver.get(url)
    driver.implicitly_wait(10)
    #让程序休眠10秒,在这期间,弹出登录界面之后,你就可以使用你的手机扫码登录淘宝了
    #其实也可以使用活动滑块来验证,但是我总是不成功,所以只能用扫码来验证了
    time.sleep(10)
    #定位索索狂,并将其清除
    driver.find_element_by_id('q').clear()
    #在搜索框内输入“羽绒服'
    driver.find_element_by_id('q').send_keys('羽绒服')
    #休息两秒,免得被发现为爬虫
    time.sleep(2)
    #点击搜索按钮
    driver.find_element_by_xpath('//*[@id="J_TSearchForm"]/div[1]/button').click()
    #休息两秒
    time.sleep(2)
    #driver.find_element_by_xpath('//*[@id="J_relative"]/div[1]/div/ul/li[2]/a').click()
    #点击来源于“ 天猫 ” 按钮
    driver.find_element_by_xpath('//*[@id="tabFilterMall"]').click()
    #休息两秒
    time.sleep(2)
    #点击 “ 销量最高按钮 ”
    driver.find_element_by_xpath('//*[@id="J_relative"]/div[1]/div/ul/li[2]/a').click()
    #休息两秒
    time.sleep(2)
    #打印当前页面的URL
    print(driver.current_url)
    # 解析网页
    html = etree.HTML(driver.page_source)
    # 利用xpath寻找大循环。
    items = html.xpath('//div[@class="item J_MouserOnverReq  "]')
    for item in items:
        #利用xpath 进行小循环,打印销量排名靠前的店家名称
        shop = item.xpath('div[2]/div[3]/div[1]/a/span[2]/text()')[0]
        print(shop)
  1. 首先导入需要用到的库 。带  “ # ”的表示为headless模式
  2. 指定浏览器为 Chrome,这里采用有头模式,一方面你可以观察Selenium跟浏览器是如何配合使用,然后自动搜索商品信息的,另一方面,由于淘宝存在反扒机制:即你必须登录才能搜索到相关信息。所以我们的开始页面是淘宝的登录页面,https://login.taobao.com/member/login.jhtml  等截面弹出来之后,你只需要通过你的手机淘宝扫码登录即可。不要频繁登录,否则淘宝还会启动其他反扒机制。
  3. 其余解释,源码中已经作为注释存在了,关于  xpath 可能没有详细解释,其实就跟 正则表达式 类似,但是在网页结构更加复杂,需要爬取大量数据的情况下,建议使用 xpath 来提取信息。关于 xpath ,我们明天会进行简单介绍

 

你可能感兴趣的:(Python爬虫入门,Python爬虫)