1. 程式人生 > 程式設計 >Python3 使用selenium外掛爬取蘇寧商家聯絡電話

Python3 使用selenium外掛爬取蘇寧商家聯絡電話

Selenium簡介

Selenium是一個用於測試網站的自動化測試工具,支援各種瀏覽器包括Chrome、Firefox、Safari等主流介面瀏覽器,同時也支援phantomJS無介面瀏覽器。

此處使用了selenium外掛 使用的是火狐瀏覽器 資訊儲存到csv表格裡面

前面詳細不多講如果條件不滿足自行百度安裝

# -*- coding: utf-8 -*-
"""
Created on Wed Dec 11 20:21:04 2019

@author: Administrator
"""
from selenium import webdriver
import time
import random
import csv
import codecs

#此處為要爬取的頁數預設為 50頁
yema = 50
#要爬取的網址 此處網址為搜尋詳細產品出現的產品搜尋結果頁
#注意蘇寧搜尋行業詞出現的產品頁面是不一樣的
wangzhi = "https://search.suning.com/%E4%BC%91%E9%97%B2%E9%A3%9F%E5%93%81/"
#codevs 防止中文寫入時亂碼
f = codecs.open('suning.csv','a',encoding='utf-8')
csv_writer = csv.writer(f)
#谷歌
#browser = webdriver.chrom.webdirver.WebDriver(executable_path="chromedriver")
#火狐
browser1 = webdriver.Firefox(executable_path="geckodriver")

def browser_1(url,browser=browser1):

  #開啟網頁
  browser.get(url)
  
  return(browser)

browser = browser_1(wangzhi)
#通過class找到元素
#input_guanggao = browser.find_element_by_class_name("close-btn")
#點一下
#input_guanggao.click()
#輸入
#input_txt.send_keys("111")
#翻頁鍵
#next_page = browser.find_element_by_class_name("next")
#資料提取
urls = []
nub = 1
for i in range(yema-1):
  print(i)
  #將滾動條拖到底部
  js="var q=document.documentElement.scrollTop=100000"
  browser.execute_script(js)
  time.sleep(random.randint(5,10))
  shops = browser.find_elements_by_class_name("sellPoint")
  for shop in shops:
    #print(shop)
    #print("*"*10)
    url = shop.get_attribute('href')
    vip = "/0000000000/"
    if vip not in url:
      urls.append(url)
      print(i,"--",nub,url)
      nub += 1
  print(i,"頁")
  i += 1
  js="var q=document.documentElement.scrollTop=500"
  browser.execute_script(js)
  time.sleep(random.randint(3,5))
  next_page = browser.find_element_by_class_name("next")
  time.sleep(random.randint(3,5))
  next_page.click()
  time.sleep(random.randint(5,8))
print("---"*10)
for ul in urls:
  browser_shop = browser_1(ul)
  #公司名稱
  chead_companyName = browser_shop.find_element_by_id("chead_companyName")
  #電話
  chead_telPhone = browser_shop.find_element_by_id("chead_telPhone")
  #地址
  chead_companyAddress = browser_shop.find_element_by_id("chead_companyAddress")
  browser_shop.find_element_by_class_name("storname").click()
  #chead_telPhone.find_element_by_xpath("//*[contains(text(),'13816391436')]").click()
  companyName = chead_companyName.text
  if companyName == "":
    companyName = "null"
  telPhone = chead_telPhone.text
  if telPhone == "":
    telPhone = "null"
  companyAddress = chead_companyAddress.text
  if companyAddress == "":
    companyAddress = "null"
  print(companyName,"==",telPhone,companyAddress)
  csv_writer.writerow([companyName,companyAddress])
  #browser_shop.close()
f.close()
print("結束")  

總結

以上所述是小編給大家介紹的Python3 使用selenium外掛爬取蘇寧商家聯絡電話,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!
如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!