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中文件遍历的两种方法
Jun 16 Python
Python中exit、return、sys.exit()等使用实例和区别
May 28 Python
Python实现分割文件及合并文件的方法
Jul 10 Python
日常整理python执行系统命令的常见方法(全)
Oct 22 Python
利用Python破解验证码实例详解
Dec 08 Python
python 内置模块详解
Jan 01 Python
python利用selenium进行浏览器爬虫
Apr 25 Python
Django保护敏感信息的方法示例
May 09 Python
Python 3.6打包成EXE可执行程序的实现
Oct 18 Python
浅谈Python 命令行参数argparse写入图片路径操作
Jul 12 Python
Python+OpenCV图像处理—— 色彩空间转换
Oct 22 Python
matplotlib 范围选区(SpanSelector)的使用
Feb 24 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
让php处理图片变得简单 基于gb库的图片处理类附实例代码下载
2011/05/17 PHP
php排序算法(冒泡排序,快速排序)
2012/10/09 PHP
thinkPHP商城公告功能开发问题分析
2016/12/01 PHP
Laravel定时任务的每秒执行代码
2019/10/22 PHP
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
2007/02/15 Javascript
让div层随鼠标移动的实现代码 ie ff
2009/12/18 Javascript
JavaScript使用IEEE 标准进行二进制浮点运算产生莫名错误的解决方法
2011/05/28 Javascript
浅谈javascript中的作用域
2012/04/07 Javascript
手机平板等移动端适配跳转URL的js代码
2014/01/25 Javascript
JS完整获取IE浏览器信息包括类型、版本、语言等等
2014/05/22 Javascript
jquery控制显示服务器生成的图片流
2015/08/04 Javascript
JavaScript简单获取页面图片原始尺寸的方法
2016/06/21 Javascript
基于javascript实现按圆形排列DIV元素(一)
2016/12/02 Javascript
Bootstrap基本样式学习笔记之表单(3)
2016/12/07 Javascript
原生js实现鼠标跟随效果
2017/02/28 Javascript
Javascript操作dom对象之select全面解析
2017/04/24 Javascript
获取layer.open弹出层的返回值方法
2018/08/20 Javascript
优化Vue中date format的性能详解
2020/01/13 Javascript
vue实现动态给id赋值,点击事件获取当前点击的元素的id操作
2020/11/09 Javascript
python使用PIL模块实现给图片打水印的方法
2015/05/22 Python
django实现登录时候输入密码错误5次锁定用户十分钟
2017/11/05 Python
numpy实现神经网络反向传播算法的步骤
2019/12/24 Python
.dcm格式文件软件读取及python处理详解
2020/01/16 Python
实例讲解Python 迭代器与生成器
2020/07/08 Python
英国鲜花递送:Blossoming Gifts
2020/07/10 全球购物
通信工程毕业生自荐信
2013/11/01 职场文书
房地产销售经理岗位职责
2014/01/01 职场文书
高中军训感想300字
2014/03/04 职场文书
室内趣味活动方案
2014/08/24 职场文书
高中生第一学年自我鉴定
2014/09/12 职场文书
机械设计专业大学生职业生涯规划书范文
2014/09/13 职场文书
高中校园广播稿3篇
2014/09/29 职场文书
2014年组织部工作总结
2014/11/14 职场文书
捐资助学感谢信
2015/01/21 职场文书
感恩母亲节活动总结
2015/02/10 职场文书
运动会通讯稿600字
2015/07/20 职场文书