價(jià)值上千元的Python爬蟲外包案例,學(xué)會(huì)你就賺了

前言
隨著互聯(lián)網(wǎng)時(shí)代的到來,人們更加傾向于互聯(lián)網(wǎng)購(gòu)物。某寶又是電商行業(yè)的巨頭,在某寶平臺(tái)中有很多商家數(shù)據(jù)。
今天帶大家使用python+selenium工具獲取這些公開的
適合人群:
Python零基礎(chǔ)、對(duì)爬蟲數(shù)據(jù)采集感興趣的同學(xué)!
環(huán)境介紹:
python 3.6
pycharm
selenium
time
1、安裝selenium模塊
pip install selenium
2、請(qǐng)求網(wǎng)頁(yè)地址
if __name__ == '__main__':
? ?keyword = input('請(qǐng)輸入你要查詢的商品數(shù)據(jù):')
? ?driver = webdriver.Chrome()
? ?driver.get('https://www.taobao.com')
? ?main()

def search_product(key):
? ?"""模擬搜索商品,獲取最大頁(yè)數(shù)"""
? ?driver.find_element_by_id('q').send_keys(key) ?# 根據(jù)id值找到搜索框輸入關(guān)鍵字
? ?driver.find_element_by_class_name('btn-search').click() ?# 點(diǎn)擊搜索案例
? ?driver.maximize_window() ?# 最大化窗口
? ?time.sleep(15)
page = driver.find_element_by_xpath('//*[@id="mainsrp-pager"]/div/div/div/div[1]') ?# 獲取頁(yè)數(shù)的標(biāo)簽
? ?page = page.text ?# 提取標(biāo)簽的文字
? ?page = re.findall('(\d+)', page)[0] ?
? ?# print(page)
? ?return int(page)

4、獲取商品數(shù)據(jù)
def get_product():
? ?divs = driver.find_elements_by_xpath('//div[@class="items"]/div[@class="item J_MouserOnverReq ?"]')
? ?for div in divs:
? ? ? ?info = div.find_element_by_xpath('.//div[@class="row row-2 title"]/a').text ?# 商品名稱
? ? ? ?price = div.find_element_by_xpath('.//strong').text + '元' ?# 商品價(jià)格
? ? ? ?deal = div.find_element_by_xpath('.//div[@class="deal-cnt"]').text ?# 付款人數(shù)
? ? ? ?name = div.find_element_by_xpath('.//div[@class="shop"]/a').text ?# 店鋪名稱
? ? ? ?print(info, price, deal, name, sep='|')
? ? ? ?with open('data.csv', 'a', newline='') as csvfile: ?# newline='' ?指定一行一行寫入
? ? ? ? ? ?csvwriter = csv.writer(csvfile, delimiter=',') ?# delimiter=',' ?csv數(shù)據(jù)的分隔符
? ? ? ? ? ?csvwriter.writerow([info, price, deal, name]) ?# 序列化數(shù)據(jù),寫入csv
? ? ? ? ? ?
def main():
? ?search_product(keyword)
? ?page = get_product()


完整代碼如下:
from selenium import webdriver
import time
import re
import csv
def search_product(key):
? ? """模擬搜索商品,獲取最大頁(yè)數(shù)"""
? ? driver.find_element_by_id('q').send_keys(key)? # 根據(jù)id值找到搜索框輸入關(guān)鍵字
? ? driver.find_element_by_class_name('btn-search').click()? # 點(diǎn)擊搜索案例
? ? driver.maximize_window()? # 最大化窗口
? ? time.sleep(15)
? ? page = driver.find_element_by_xpath('//*[@id="mainsrp-pager"]/div/div/div/div[1]')? # 獲取頁(yè)數(shù)的標(biāo)簽
? ? page = page.text? # 提取標(biāo)簽的文字
? ? page = re.findall('(\d+)', page)[0]??
? ? # print(page)
? ? return int(page)
def get_product():
? ? divs = driver.find_elements_by_xpath('//div[@class="items"]/div[@class="item J_MouserOnverReq? "]')
? ? for div in divs:
? ? ? ? info = div.find_element_by_xpath('.//div[@class="row row-2 title"]/a').text? # 商品名稱
? ? ? ? price = div.find_element_by_xpath('.//strong').text + '元'? # 商品價(jià)格
? ? ? ? deal = div.find_element_by_xpath('.//div[@class="deal-cnt"]').text? # 付款人數(shù)
? ? ? ? name = div.find_element_by_xpath('.//div[@class="shop"]/a').text? # 店鋪名稱
? ? ? ? print(info, price, deal, name, sep='|')
? ? ? ? with open('data.csv', 'a', newline='') as csvfile:? # newline=''? 指定一行一行寫入
? ? ? ? ? ? csvwriter = csv.writer(csvfile, delimiter=',')? # delimiter=','? csv數(shù)據(jù)的分隔符
? ? ? ? ? ? csvwriter.writerow([info, price, deal, name])? # 序列化數(shù)據(jù),寫入csv
def main():
? ? search_product(keyword)
? ? page = get_product()
if __name__ == '__main__':
? ? keyword = input('請(qǐng)輸入你要查詢的商品數(shù)據(jù):')
? ? driver = webdriver.Chrome()
? ? driver.get('https://www.taobao.com')
? ? main()

喜歡的就請(qǐng)關(guān)注加點(diǎn)贊