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实用技巧两则
Aug 29 Python
Python NumPy库安装使用笔记
May 18 Python
python实现发送和获取手机短信验证码
Jan 15 Python
简介Python设计模式中的代理模式与模板方法模式编程
Feb 02 Python
Python基于二分查找实现求整数平方根的方法
May 12 Python
python实现二维码扫码自动登录淘宝
Dec 27 Python
Python enumerate索引迭代代码解析
Jan 19 Python
Python基于datetime或time模块分别获取当前时间戳的方法实例
Feb 19 Python
Python爬虫爬取电影票房数据及图表展示操作示例
Mar 27 Python
如何使用python socket模块实现简单的文件下载
Sep 04 Python
Python hashlib和hmac模块使用方法解析
Dec 08 Python
python tkinter Entry控件的焦点移动操作
May 22 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结合md5实现的加密解密方法
2016/01/25 PHP
yum命令安装php7和相关扩展
2016/07/04 PHP
在PHP语言中使用JSON和将json还原成数组的方法
2016/07/19 PHP
PHP单文件上传原理及上传函数的封装操作示例
2019/09/02 PHP
javascript 处理事件绑定的一些兼容写法
2009/12/24 Javascript
JS 树形递归实例代码
2010/05/18 Javascript
基于jquery的划词搜索实现(备忘)
2010/09/14 Javascript
关于JavaScript中的关联数组分析
2013/04/09 Javascript
js 处理数组重复元素示例代码
2013/12/27 Javascript
通过伪协议解决父页面与iframe页面通信的问题
2015/04/05 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
求js数组的最大值和最小值的四种方法
2017/03/03 Javascript
JS使用正则表达式找出最长连续子串长度
2017/10/26 Javascript
Node.js学习教程之HTTP/2服务器推送【译】
2017/10/31 Javascript
jQuery实现左右滑动的toggle方法
2018/03/03 jQuery
vue源码解析之事件机制原理
2018/04/21 Javascript
详解基于Node.js的HTTP/2 Server实践
2018/05/31 Javascript
node之本地服务器图片上传的方法示例
2019/03/26 Javascript
layui 实现表格某一列显示图标
2019/09/19 Javascript
Bootstrap实现前端登录页面带验证码功能完整示例
2020/03/26 Javascript
python批量修改文件后缀示例代码分享
2013/12/24 Python
python根据经纬度计算距离示例
2014/02/16 Python
pycharm远程调试openstack代码
2017/11/21 Python
pandas 根据列的值选取所有行的示例
2018/11/07 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
2019/08/20 Python
django中的图片验证码功能
2019/09/18 Python
python检查目录文件权限并修改目录文件权限的操作
2020/03/11 Python
Python实现淘宝秒杀功能的示例代码
2021/01/19 Python
集团公司人力资源部岗位职责
2014/01/03 职场文书
省优秀教师事迹材料
2014/01/30 职场文书
大学活动总结格式
2014/04/29 职场文书
厉行勤俭节约倡议书
2014/05/16 职场文书
英语课前三分钟演讲稿
2014/08/19 职场文书
python调用ffmpeg命令行工具便捷操作视频示例实现过程
2021/11/01 Python
MySQL读取JSON转换的方式
2022/03/18 MySQL
使用Docker容器部署rocketmq单机的全过程
2022/04/03 Servers