Python3 使用selenium插件爬取苏宁商家联系电话
Selenium简介
Selenium是一个用于测试网站的自动化测试工具,支持各种浏览器包括Chrome、Firefox、Safari等主流界面浏览器,同时也支持phantomJS无界面浏览器。
此处使用了selenium插件使用的是火狐浏览器信息存储到csv表格里面
前面详细不多讲如果条件不满足自行百度安装
#-*-coding:utf-8-*-
"""
CreatedonWedDec1120:21:042019
@author:Administrator
"""
fromseleniumimportwebdriver
importtime
importrandom
importcsv
importcodecs
#此处为要爬取的页数默认为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")
defbrowser_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
foriinrange(yema-1):
print(i)
#将滚动条拖到底部
js="varq=document.documentElement.scrollTop=100000"
browser.execute_script(js)
time.sleep(random.randint(5,10))
shops=browser.find_elements_by_class_name("sellPoint")
forshopinshops:
#print(shop)
#print("*"*10)
url=shop.get_attribute('href')
vip="/0000000000/"
ifvipnotinurl:
urls.append(url)
print(i,"--",nub,"--",url)
nub+=1
print(i,"页")
i+=1
js="varq=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)
forulinurls:
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
ifcompanyName=="":
companyName="null"
telPhone=chead_telPhone.text
iftelPhone=="":
telPhone="null"
companyAddress=chead_companyAddress.text
ifcompanyAddress=="":
companyAddress="null"
print(companyName,"==",telPhone,"==",companyAddress)
csv_writer.writerow([companyName,telPhone,companyAddress])
#browser_shop.close()
f.close()
print("结束")
总结
以上所述是小编给大家介绍的Python3使用selenium插件爬取苏宁商家联系电话,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。