需要安装:selenuim+pyefun+chrome驱动+chrome配套浏览器 这个驱动和浏览器我之前的文章里有说过,可以翻一下.
注意,本采集的公开内容只供学习技术交流使用,切勿违规利用他人信息.
效果图:
import pyefun.wxefun as wx
from selenium import webdriver
import time
import _thread
# -*- coding:utf-8 -*-
class 窗口1(wx.窗口):
def __init__(self):
self.初始化界面()
file = open("data.txt", "a+")
file.seek(0,0)
self.编辑框2.内容=file.read()
file.close()
def 初始化界面(self):
#########以下是创建的组件代码#########
wx.窗口.__init__(self, None, title='可视化采集-寻无极软件', size=(1033, 748), name='frame', style=541072896)
self.容器 = wx.容器(self)
self.Centre()
self.窗口1 = self
self.按钮1 = wx.按钮(self.容器, size=(86, 34), pos=(641, 17), label='搜索', name='button')
self.按钮1.绑定事件(wx.事件.被单击, self.按钮1_被单击)
self.编辑框1 = wx.编辑框(self.容器, size=(425, 31), pos=(204, 20), value='', name='text', style=0)
self.编辑框1.背景颜色 = (255, 255, 255, 255)
self.标签_URL = wx.标签(self.容器, size=(176, 22), pos=(14, 26), label='输入搜索关键词:', name='staticText', style=2321)
self.标签_URL.字体 = wx.Font(12, 74, 90, 400, False, 'Microsoft YaHei UI', 28)
self.编辑框2 = wx.编辑框(self.容器, size=(1010, 644), pos=(5, 65), value='', name='text', style = wx.TE_MULTILINE)
self.编辑框2.文本颜色 = (0, 0, 160, 255)
self.编辑框2.背景颜色 = (255, 255, 255, 255)
self.编辑框2.绑定事件(wx.事件.内容被改变, self.编辑框2_内容被改变)
self.按钮2 = wx.按钮(self.容器, size=(68, 31), pos=(749, 19), label='按钮', name='button')
self.按钮2.字体 = wx.Font(9, 70, 90, 400, False, 'Microsoft YaHei UI', -1)
self.按钮2.绑定事件(wx.事件.被单击, self.按钮2_被单击)
#########以上是创建的组件代码##########
#########以下是组件绑定的事件代码#########
def 按钮1_被单击(self,event):
print("按钮1_被单击")
#style = wx.TE_MULTILINE
def map_search(keys,t):
driver = webdriver.Chrome("chromedriver.exe")
driver.implicitly_wait("20")
driver.get('https://map.baidu.com/')
time.sleep(5)
driver.find_element_by_id("sole-input").click()
driver.find_element_by_id("sole-input").send_keys(keys + "\n")
link_list = driver.find_elements_by_css_selector("#card-1 > div > ul > li")
print(len(link_list))
data = ""
for n in range(1, len(link_list)):
css = 'li[data-index="' + str(n) + '"]'
time.sleep(2)
print(css)
link = driver.find_element_by_css_selector(css)
print(link.text)
link.click()
time.sleep(2)
try:
name = driver.find_element_by_css_selector(".clampword.generalHead-titlename").text
add = driver.find_element_by_css_selector("span.generalInfo-address-text").text
tel = driver.find_element_by_css_selector("span.clampword.generalInfo-telnum-text").text
print("店名:" + name + "|地址:" + add + "|" + tel)
data ="店名:" + name + "|地址:" + add + "|" + tel + "\n"
self.编辑框2.加入文本(data)
time.sleep(2)
except:
print("Error: 执行过程出现了点问题")
driver.find_element_by_css_selector(".card.status-return.fold").click()
time.sleep(t)
file=open("data.txt","a+")
file.write(data)
file.close()
try:
_thread.start_new_thread(map_search, (self.编辑框1.内容,2))
except:
print("Error: 无法启动线程")
def 按钮2_被单击(self,event):
print("按钮2_被单击")
self.编辑框2.加入文本(self.编辑框1.内容+"\n")
def 编辑框2_内容被改变(self,event):
print("编辑框2_内容被改变")
#########以上是组件绑定的事件代码#########
class 应用(wx.App):
def OnInit(self):
self.窗口1 = 窗口1()
self.窗口1.Show(True)
return True
if __name__ == '__main__':
app = 应用()
app.MainLoop()
如有疑问,请联系微信:huang582716403