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实现的tab文件操作类分享
Nov 20 Python
python编写分类决策树的代码
Dec 21 Python
python中matplotlib的颜色及线条控制的示例
Mar 16 Python
详解Django中类视图使用装饰器的方式
Aug 12 Python
selenium在执行phantomjs的API并获取执行结果的方法
Dec 17 Python
python pandas生成时间列表
Jun 29 Python
python的几种矩阵相乘的公式详解
Jul 10 Python
Django REST framework 如何实现内置访问频率控制
Jul 23 Python
Python random模块制作简易的四位数验证码
Feb 01 Python
python异常处理try except过程解析
Feb 03 Python
基于FME使用Python过程图解
May 13 Python
Python pathlib模块使用方法及实例解析
Oct 05 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的FTP学习(二)
2006/10/09 PHP
解决FastCGI 进程超过了配置的活动超时时限的问题
2013/07/03 PHP
使用PHP和JavaScript判断请求是否来自微信内浏览器
2015/08/18 PHP
PHP微信API接口类
2016/08/22 PHP
php批量删除操作代码分享
2017/02/26 PHP
Yii 2.0实现联表查询加搜索分页的方法示例
2017/08/02 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
2019/02/16 PHP
使用jQuery内容过滤选择器选择元素实例讲解
2013/04/18 Javascript
js使用setTimeout实现定时炸弹的方法
2015/04/10 Javascript
分享自己用JS做的扫雷小游戏
2016/02/17 Javascript
手动初始化Angular的模块与控制器
2016/12/26 Javascript
JS按钮闪烁功能的实现代码
2017/07/21 Javascript
jQuery动态添加元素无法触发绑定事件的解决方法分析
2018/01/02 jQuery
解决vue.js this.$router.push无效的问题
2018/09/03 Javascript
详解微信小程序实现跑马灯效果(附完整代码)
2019/04/29 Javascript
使用JavaScript实现网页秒表功能(含开始、暂停、继续、重置功能)
2020/06/05 Javascript
python 图片验证码代码分享
2012/07/04 Python
Python isinstance函数介绍
2015/04/14 Python
python实现应用程序在右键菜单中添加打开方式功能
2017/01/09 Python
python测试mysql写入性能完整实例
2018/01/18 Python
django orm 通过related_name反向查询的方法
2018/12/15 Python
python实现对象列表根据某个属性排序的方法详解
2019/06/11 Python
python破解bilibili滑动验证码登录功能
2019/09/11 Python
Python包,__init__.py功能与用法分析
2020/01/07 Python
python数据爬下来保存的位置
2020/02/17 Python
python如何将两张图片生成为全景图片
2020/03/05 Python
python 批量下载bilibili视频的gui程序
2020/11/20 Python
使用Python封装excel操作指南
2021/01/29 Python
一款纯css3实现的动画加载导航
2014/10/08 HTML / CSS
三年级语文教学反思
2014/02/01 职场文书
网络书店创业计划书
2014/02/07 职场文书
学校募捐倡议书
2014/05/14 职场文书
2014年教师节寄语
2014/08/11 职场文书
考试作弊检讨书
2015/01/27 职场文书
2015学校师德师风工作总结
2015/04/22 职场文书
同意报考证明
2015/06/17 职场文书