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程序抓取网页的HTML信息的一个小实例
May 02 Python
使用Python监控文件内容变化代码实例
Jun 04 Python
python实现音乐下载的统计
Jun 20 Python
详解python执行shell脚本创建用户及相关操作
Apr 11 Python
Python判断字符串是否xx开始或结尾的示例
Aug 08 Python
Python发送邮件的实例代码讲解
Oct 16 Python
tensorflow 实现打印pb模型的所有节点
Jan 23 Python
Python使用Selenium实现淘宝抢单的流程分析
Jun 23 Python
用python写爬虫简单吗
Jul 28 Python
Python设计密码强度校验程序
Jul 30 Python
零基础学python应该从哪里入手
Aug 11 Python
Pytorch使用shuffle打乱数据的操作
May 20 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 实现进制转换(二进制、八进制、十六进制)互相转换实现代码
2010/10/22 PHP
全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点
2011/01/06 PHP
用php制作简单分页(从数据库读取记录)的方法详解
2013/05/04 PHP
php进行支付宝开发中return_url和notify_url的区别分析
2014/12/22 PHP
YII CLinkPager分页类扩展增加显示共多少页
2016/01/29 PHP
PHP符合PSR编程规范的实例分享
2016/12/21 PHP
javascript Array.prototype.slice的使用示例
2013/11/14 Javascript
jquery zTree异步加载简单实例讲解
2016/02/25 Javascript
javascript运算符语法全面概述
2016/07/14 Javascript
Javascript oop设计模式 面向对象编程简单实例介绍
2016/12/13 Javascript
Javascript中数组去重与拍平的方法示例
2017/02/03 Javascript
浅析jsopn跨域请求原理及cors(跨域资源共享)的完美解决方法
2017/02/06 Javascript
js 动态生成html 触发事件传参字符转义的实例
2017/02/14 Javascript
JS简单实现点击按钮或文字显示遮罩层的方法
2017/04/27 Javascript
JavaScript中document.referrer的用法详解
2017/07/04 Javascript
详解在Vue中有条件地使用CSS类
2017/09/30 Javascript
JavaScript实现鼠标滚轮控制页面图片切换功能示例
2017/10/14 Javascript
jquery.pager.js分页实现详解
2019/07/29 jQuery
vue 集成jTopo 处理方法
2019/08/07 Javascript
python和pyqt实现360的CLable控件
2014/02/21 Python
python实现根据窗口标题调用窗口的方法
2015/03/13 Python
Python使用设计模式中的责任链模式与迭代器模式的示例
2016/03/02 Python
python制作爬虫爬取京东商品评论教程
2016/12/16 Python
Python网络爬虫中的同步与异步示例详解
2018/02/03 Python
Python中%是什么意思?python中百分号如何使用?
2018/03/20 Python
CentOS 7下安装Python3.6 及遇到的问题小结
2018/11/08 Python
哈萨克斯坦最大的时装、鞋子和配饰在线商店:Lamoda.kz
2019/11/19 全球购物
小学班主任寄语大全
2014/04/04 职场文书
煤矿安全生产责任书
2014/04/15 职场文书
三好学生演讲稿范文
2014/04/26 职场文书
竞选村长演讲稿
2014/04/28 职场文书
给学校的建议书范文
2014/05/15 职场文书
通信工程专业求职信
2014/06/04 职场文书
先进工作者事迹材料
2014/12/23 职场文书
好好学习保证书
2015/02/26 职场文书
解决linux下redis数据库overcommit_memory问题
2022/02/24 Redis