Python3 使用selenium插件爬取苏宁商家联系电话


Posted in Python onDecember 23, 2019

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,telPhone,companyAddress])
  #browser_shop.close()
f.close()
print("结束")

总结

以上所述是小编给大家介绍的Python3 使用selenium插件爬取苏宁商家联系电话,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
Python中bisect的用法
Sep 23 Python
Python入门篇之文件
Oct 20 Python
python正则表达式面试题解答
Apr 28 Python
Python字典及字典基本操作方法详解
Jan 30 Python
Python SMTP发送邮件遇到的一些问题及解决办法
Oct 24 Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
Apr 16 Python
Python对HTML转义字符进行反转义的实现方法
Apr 28 Python
使用python制作一个为hex文件增加版本号的脚本实例
Jun 12 Python
python 输出列表元素实例(以空格/逗号为分隔符)
Dec 25 Python
python使用rsa非对称加密过程解析
Dec 28 Python
Python 数据的累加与统计的示例代码
Aug 03 Python
如何使用python写截屏小工具
Sep 29 Python
kafka监控获取指定topic的消息总量示例
Dec 23 #Python
kafka-python 获取topic lag值方式
Dec 23 #Python
python3连接kafka模块pykafka生产者简单封装代码
Dec 23 #Python
python pyenv多版本管理工具的使用
Dec 23 #Python
Python测试Kafka集群(pykafka)实例
Dec 23 #Python
Python with语句和过程抽取思想
Dec 23 #Python
python每5分钟从kafka中提取数据的例子
Dec 23 #Python
You might like
escape unescape的php下的实现方法
2007/04/27 PHP
php 数组使用详解 推荐
2011/06/02 PHP
php 无法加载mysql的module的时候的配置的解决方案引发的思考
2012/01/27 PHP
解析Win7 XAMPP apache无法启动的问题
2013/06/26 PHP
PHP字符串的递增和递减示例介绍
2014/02/11 PHP
windows下安装php的memcache模块的方法
2015/04/07 PHP
php+websocket 实现的聊天室功能详解
2020/05/27 PHP
IE和Mozilla的兼容性汇总event
2007/08/12 Javascript
javascript中用星号表示预录入内容的实现代码
2011/01/08 Javascript
jquery果冻抖动效果实现方法
2015/01/15 Javascript
jQuery的Each比JS原生for循环性能慢很多的原因
2016/07/05 Javascript
ionic组件ion-tabs选项卡切换效果实例
2016/08/27 Javascript
javascript 中关于array的常用方法详解
2017/05/05 Javascript
vue2 中如何实现动态表单增删改查实例
2017/06/09 Javascript
JavaScript上传文件时不用刷新页面方法总结(推荐)
2017/08/15 Javascript
Redux 和 Mobx的选择问题:让你不再困惑!
2017/09/18 Javascript
jQuery+ajax读取json数据并按照价格排序示例
2018/03/28 jQuery
vue.js打包之后可能会遇到的坑!
2018/06/03 Javascript
基于nodejs的微信JS-SDK简单应用实现
2019/05/21 NodeJs
微信小程序背景音乐开发详解
2019/12/12 Javascript
Python实现Sqlite将字段当做索引进行查询的方法
2016/07/21 Python
python 制作自定义包并安装到系统目录的方法
2018/10/27 Python
python3+opencv3识别图片中的物体并截取的方法
2018/12/05 Python
Python使用Slider组件实现调整曲线参数功能示例
2019/09/06 Python
Python爬取腾讯视频评论的思路详解
2019/12/19 Python
超级实用的8个Python列表技巧
2020/08/24 Python
css3使用animation属性实现炫酷效果(推荐)
2020/02/04 HTML / CSS
香港通票:Hong Kong Pass
2019/02/26 全球购物
《我不是最弱小的》教学反思
2014/02/23 职场文书
教师自我鉴定范文
2014/03/20 职场文书
驾驶员安全责任书范本
2014/07/24 职场文书
无犯罪记录证明
2014/09/19 职场文书
简易版租房协议书范本
2014/10/13 职场文书
基层医务人员三严三实心得体会
2016/01/05 职场文书
python实现Thrift服务端的方法
2021/04/20 Python
JavaGUI模仿QQ聊天功能完整版
2021/07/04 Java/Android