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中查看文件名和文件路径
Mar 31 Python
Python基于tkinter模块实现的改名小工具示例
Jul 27 Python
Python数据分析之双色球统计单个红和蓝球哪个比例高的方法
Feb 03 Python
python爬虫 使用真实浏览器打开网页的两种方法总结
Apr 21 Python
Python读写zip压缩文件的方法
Aug 29 Python
python 使用turtule绘制递归图形(螺旋、二叉树、谢尔宾斯基三角形)
May 30 Python
python实现植物大战僵尸游戏实例代码
Jun 10 Python
在Python中字符串、列表、元组、字典之间的相互转换
Nov 15 Python
python创建学生管理系统
Nov 22 Python
python shell命令行中import多层目录下的模块操作
Mar 09 Python
Python Scrapy多页数据爬取实现过程解析
Jun 12 Python
解决keras模型保存h5文件提示无此目录问题
Jul 01 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的array_diff()函数在处理大数组时的效率问题
2011/11/27 PHP
老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略
2016/03/20 PHP
PHP yii实现model添加默认值的方法(两种方法)
2016/11/10 PHP
php读取XML的常见方法实例总结
2017/04/25 PHP
ThinkPHP实现登录退出功能
2017/06/29 PHP
laravel框架中视图的基本使用方法分析
2019/11/23 PHP
jquery仿搜索自动联想功能代码
2014/05/23 Javascript
JavaScript对象之深度克隆介绍
2014/12/08 Javascript
原生js实现类似弹窗抖动效果
2015/04/02 Javascript
javaScript中with函数用法实例分析
2015/06/08 Javascript
JS实现当前页居中分页效果的方法
2015/06/18 Javascript
js html5 css俄罗斯方块游戏再现
2016/10/17 Javascript
jQuery插件echarts设置折线图中折线线条颜色和折线点颜色的方法
2017/03/03 Javascript
关于vue.js组件数据流的问题
2017/07/26 Javascript
js 实现复选框只能选择一项的示例代码
2018/01/23 Javascript
nodejs实现套接字服务功能详解
2018/06/21 NodeJs
搭建vue开发环境
2018/07/19 Javascript
微信小程序文章详情页面实现代码
2018/09/10 Javascript
[01:50]《我与DAC》之玩家:iG夺冠时的那面红旗
2018/03/29 DOTA
[00:43]魔廷新尊——痛苦女王至宝捆绑包
2020/06/12 DOTA
django页面跳转问题及注意事项
2019/07/18 Python
Django实现文件上传下载
2019/10/06 Python
css3与html5实现响应式导航菜单(导航栏)效果分享
2014/02/12 HTML / CSS
html5视频常用API接口的实战示例
2020/03/20 HTML / CSS
AmazeUI 缩略图的实现示例
2020/08/18 HTML / CSS
Ray-Ban雷朋瑞典官方网站:全球领先的太阳眼镜品牌
2019/08/22 全球购物
行政助理岗位职责
2013/11/10 职场文书
矿泉水广告词
2014/03/20 职场文书
《苏珊的帽子》教学反思
2014/04/07 职场文书
党建工作先进材料
2014/05/02 职场文书
争当四好少年演讲稿
2014/09/13 职场文书
标准离婚协议书(2014版)
2014/10/05 职场文书
2014年为民办实事工作总结
2014/12/20 职场文书
西部计划志愿者工作总结
2015/08/11 职场文书
创业计划书之甜品店
2019/09/18 职场文书
十二月早安励志心语大全
2019/12/03 职场文书