Python3 使用selenium插件爬取蘇寧商家聯(lián)系電話
Selenium簡(jiǎn)介
Selenium是一個(gè)用于測(cè)試網(wǎng)站的自動(dòng)化測(cè)試工具,支持各種瀏覽器包括Chrome、Firefox、Safari等主流界面瀏覽器,同時(shí)也支持phantomJS無(wú)界面瀏覽器。
此處使用了selenium插件 使用的是火狐瀏覽器 信息存儲(chǔ)到csv表格里面
前面詳細(xì)不多講如果條件不滿足自行百度安裝
# -*- 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
#此處為要爬取的頁(yè)數(shù)默認(rèn)為 50頁(yè)
yema = 50
#要爬取的網(wǎng)址 此處網(wǎng)址為搜索詳細(xì)產(chǎn)品出現(xiàn)的產(chǎn)品搜索結(jié)果頁(yè)
#注意蘇寧搜索行業(yè)詞出現(xiàn)的產(chǎn)品頁(yè)面是不一樣的
wangzhi = "https://search.suning.com/%E4%BC%91%E9%97%B2%E9%A3%9F%E5%93%81/"
#codevs 防止中文寫(xiě)入時(shí)亂碼
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):
#打開(kāi)網(wǎng)頁(yè)
browser.get(url)
return(browser)
browser = browser_1(wangzhi)
#通過(guò)class找到元素
#input_guanggao = browser.find_element_by_class_name("close-btn")
#點(diǎn)一下
#input_guanggao.click()
#輸入
#input_txt.send_keys("111")
#翻頁(yè)鍵
#next_page = browser.find_element_by_class_name("next")
#數(shù)據(jù)提取
urls = []
nub = 1
for i in range(yema-1):
print(i)
#將滾動(dòng)條拖到底部
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,"頁(yè)")
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("http://*[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,telPhone,companyAddress])
#browser_shop.close()
f.close()
print("結(jié)束")
總結(jié)
以上所述是小編給大家介紹的Python3 使用selenium插件爬取蘇寧商家聯(lián)系電話,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
- python3+selenium自動(dòng)化測(cè)試框架詳解
- python selenium 彈出框處理的實(shí)現(xiàn)
- selenium python 實(shí)現(xiàn)基本自動(dòng)化測(cè)試的示例代碼
- Python Selenium 之關(guān)閉窗口close與quit的方法
- selenium+python自動(dòng)化測(cè)試之使用webdriver操作瀏覽器的方法
- Selenium chrome配置代理Python版的方法
- selenium+python實(shí)現(xiàn)自動(dòng)化登錄的方法
- Selenium(Python web測(cè)試工具)基本用法詳解
相關(guān)文章
python實(shí)現(xiàn)Nao機(jī)器人的單目測(cè)距
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)Nao機(jī)器人的單目測(cè)距,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
python用700行代碼實(shí)現(xiàn)http客戶端
這篇文章主要介紹了python用700行代碼實(shí)現(xiàn)http客戶端的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2021-01-01
python3 使用函數(shù)求兩個(gè)數(shù)的和與差
這篇文章主要介紹了python3 使用函數(shù)求兩個(gè)數(shù)的和與差,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2021-05-05
python實(shí)現(xiàn)通訊錄系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)通訊錄系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
python標(biāo)準(zhǔn)庫(kù)random模塊處理隨機(jī)數(shù)
這篇文章主要介紹了python標(biāo)準(zhǔn)庫(kù)random模塊處理隨機(jī)數(shù),random模塊實(shí)現(xiàn)了各種分布的偽隨機(jī)數(shù)生成器,具體介紹感興趣的小伙伴可以參考一下2022-09-09
python處理multipart/form-data的請(qǐng)求方法
今天小編就為大家分享一篇python處理multipart/form-data的請(qǐng)求方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12
Django之無(wú)名分組和有名分組的實(shí)現(xiàn)
這篇文章主要介紹了Django之無(wú)名分組和有名分組,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-04-04

