Python3 使用selenium插件爬取苏宁商家联系电话
作者:菜鸟挣扎史 发布时间:2023-12-20 01:39:57
标签:python,selenium
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插件爬取苏宁商家联系电话网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
来源:https://blog.csdn.net/qq_39503451/article/details/103651936


猜你喜欢
- # -*- coding: utf-8 -*-import sysimport MySQLdbreload(sys)sys.setdefau
- 1、创建项目打开pycharm 终端,输入如下,创建项目# 进入pycharm 项目目录下cd pyWebdjango-admin star
- 前言本篇文章主要讲述了Mac下Redis的安装和使用的经验,并将python如何操作Redis做了简单介绍。1. redis 安装 和启动1
- sql2000安全很重要将有安全问题的SQL过程删除.比较全面.一切为了安全!删除了调用shell,注册表,COM组件的破坏权限use&nb
- <% '#######以下是一个类文件,下面的注解是调用类的方法####################
- 今晚在Mac OS中搭建web服务器时遇到一点冲突,逛了几个论坛和网站,都说的太片面。先列出最正确的搭建步骤:(无论你是任何操作系统,或者任
- 前几天在把一个Communtiy Server 的数据库从SQL 2000升级到SQL 2005&n
- 今天给大家分享一个简单的python脚本,使用python进行http的接口测试,脚本很简单,逻辑是:读取excel写好的测试用例,然后根据
- 概述在实践中,我们发现上述的代码重复率非常高,新增和修改都费力,并且是没技术含量的体力活。 但又必须要这样做,不适合以公共函数的形式重用,为
- 1、去除一个数组中的重复元素:使用grep函数代码片段: 代码:my @array = ( 'a', 'b'
- 简介可以考虑以下几个可能的应用:如果你需要对文件进行校验或验证,你可以使用MD5码来检查文件是否被篡改或损坏。如果你需要对文件进行分类或去重
- 最近准备做一个关于scrapy框架的实战,爬取腾讯社招信息并存储,这篇博客记录一下创建项目的步骤pycharm是无法创建一个scrapy项目
- 连接服务器菜单栏找到【工具/Tools】->【Deployment/部署】->【Confinguration…/配置…】。点加号
- logging模块是Python的一个标准库模块,开发过程中,可以通过该模块,灵活的完成日志的记录。logging模块提供了两种记录日志的方
- urllib3是一款Python 3的HTTP客户端。Python标准库提供了urllib。在Python 2中,另外提供了urllib2;
- python字典怎么排序?定义一个字典类型mydict = {2: '小路', 3: '黎明', 1:
- 在移动端开发应用UI组件也会遇到一系列需要注意的问题。问题1比如说,标签页是一个整体的组件,但是我们需要将标签页的标题和其他组件一起固定到顶
- 前言:Python 中的画图工具——turtle(海龟绘图),turtle 是 Python 中自带
- SQL Server 获取数据的总记录数,有两种方式:1.先分页获取数据,然后再查询一遍数据库获取到总数量2.使用count(1) over
- 二维数组二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,类型说明符 数组名[常量表达式][常量表达式]。二维数组又称为矩阵,行列