温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python怎么实现数据挖掘

发布时间:2021-11-20 16:36:46 来源:亿速云 阅读:286 作者:iii 栏目:编程语言

本篇内容主要讲解“Python怎么实现数据挖掘”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python怎么实现数据挖掘”吧!

这个Selenium模块主要是应对我们自动浏览网页数据所需要用的,让程序来执行半智能,前提你要教会它去做什么事情!

直接介绍此次所需要用到的家族模块:

1 from selenium import webdriver2 import time3 from selenium.webdriver.common.keys import Keys4 from selenium.webdriver.common.action_chains import ActionChains5 from selenium.webdriver.common.by import By

一、每一个解释一下哈,按顺序对号:

1、主模块的嵌入,主要是应对控制程序自动打开浏览器浏览网页功能。

2、作为开发人员,尤其是对网页自动化测试的开发工具必须需要time模块来制约程序的访问时间,因为可能网站会直接把你IP封掉。

3、selenium 模块家族成员Keys,此成员是应当以模拟键盘操作,应对模拟输入用户登录名和密码,或者价值数据索引输入。

4、selenium 模块家族成员ActionChains,它则是应对模拟鼠标操作,对与鼠标的双击,单击,左右键,应对我们翻页,搜索按钮的点击功能。

5、selenium 模块家族成员By,这个则是我们要教会它所要做的事情,也是我们数据挖掘又要用到的核心价值功能之一,应对价值数据抓取。

二、开发初步:

1、操作程序打开浏览器并打开我们需要进入的网页:

1 url = 'https://www.xxx.com'2 driver=webdriver.Chrome()3 driver.get(url)4 time.sleep(5)5 driver.quit()

这里可以自己测试一下,我所使用的是Google的浏览器,你们可以尝试使用Firefox,他们有一些的区别,主要是站点的区别!

2、进入页面后锁定tag

html:

1 <div id="aaa" class="bbb" name="ccc">2 <p></p>3 <p><a></p>4 </div>

python:

1 element = driver.find_element_by_id("aaa") 2 frame = driver.find_element_by_tag_name("div") 3 cheese = driver.find_element_by_name("ccc") 4 cheeses = driver.find_elements_by_class_name("bbb") 5 6 or 7 8 from selenium.webdriver.common.by import By 9 element = driver.find_element(by=By.ID, value="aaa")10 frame = driver.find_element(By.TAG_NAME, "div")11 cheese = driver.find_element(By.NAME, "ccc")12 cheeses = driver.find_elements(By.CLASS_NAME, "bbb")

这里每一个都是锁定tag树,它们都是根据id,class,name,tagname来定义的。

1 xpath_class = driver.find_element_by_xpath('//div[@class="bbb"]/p')2 xpath_id = driver.find_element_by_xpath('//div[@id="aaa"]/p')

这是通用方法的,Xpath方法,它们都输属于解析网页的内容锁定tag。

3、处理操作:

当我们锁定功能键的tag属性的时候,我们就可以进一步操作,比如换页,搜索功能的实现

这里我们就介绍一下模拟鼠标的操作:

1 elem = driver.find_element_by_xpath('//a[@id="tagname"]')2 ActionChains(driver).double_click(elem).perform()3 time.sleep(3)

因为时间问题,我只是介绍一下鼠标左键单击换页操作,其他的何以参考一下官方文档:Selenium Webdrive

ActionChains:锁定浏览器,double_click锁定tag标签树,.perform():点击标签树

4、获取价值数据

这里的操作类似与Xpath的语法:

driver.find_elements_by_tag_name('td')[3].text
driver.find_elements_by_tag_name('a').get_attribute('href')

这里注意一下elements,指所有的tag-> a比标签的href,这里是list格式,需要遍历。

5、最后来一串完整代码:

 1 from selenium import webdriver 2 import time 3 import lxml.html as HTML 4 from bs4 import BeautifulSoup 5 from selenium.webdriver.common.keys import Keys 6 from selenium.webdriver.common.action_chains import ActionChains 7 from pymongo import MongoClient,ASCENDING, DESCENDING 8 from selenium.webdriver.common.by import By 9 def parser():10 url = 'https://www.xxx.com'11 driver=webdriver.Chrome()12 driver.get(url)13 time.sleep(5)14 for i in range(1,675):15 a = driver.find_element_by_xpath('//div[@class="aaa"]')16 tr = a.find_elements_by_tag_name('tr')17 for j in xrange(1,len(tr)):18 quantity = tr[j].find_elements_by_tag_name('td')[3].text19 producturl = tr[j].find_elements_by_tag_name('td')[0].find_elements_by_tag_name("div")[1].find_element_by_tag_name('ul').find_element_by_tag_name('li').find_element_by_tag_name('a').get_attribute('href')20 producturl_db(producturl,quantity)21 elem = driver.find_element_by_xpath('//a[@id="eleNextPage"]')22 ActionChains(driver).double_click(elem).perform()23 time.sleep(3)24 25 driver.quit()

selenium有个小GUB,就是在用Xpath的时候,你已经找到父级tag,但是这个父级很多,比如tr,你如果遍历它,寻找td的话,那么你还是使用find_elements_by_tag_name,因为那个会初始化,不会管你找到那个父级。

到此,相信大家对“Python怎么实现数据挖掘”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI