| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> 还在熬夜干论文——Python带你一键起飞!【内附演示视频】 -> 正文阅读 |
|
[Python知识库]还在熬夜干论文——Python带你一键起飞!【内附演示视频】 |
项目背景话不多说,我们先来安利一下本期文章演示视频 写论文,这个工具爱了爱了 ?????????学习爬虫,我们可以做些什么? 这个问题从我开始开设《Python爬虫语法知识详解》就已经介绍的很清楚了,爬虫之所以可以作为我们学习Python语法的进阶项目,在于它的艺术美感和实用性。为什么我要说它的艺术美感呢,这个还是因人而异吧,毕竟每一个人心中都居住着另外一个自己,要善于发掘,而不是一味地追随。本期爬虫自动化项目,将带你走进科研的道路,博客专栏也开启了《Python爬虫实战系列》有兴趣的小伙伴,可以点击查看并学习。知识永无止境,学习仍需努力! 目录 项目开展创作的灵感来源于生活!没有什么项目是空穴来风的,一切的实际操作都是为了解决我们的日常需要,毕竟这个社会是实用主义居多,我们要前进就需要学习,我比较喜欢CSDN上的一位博主,曾经说过这样一句话:我为了学习,需要不断的输入,当我学到了东西,就立马输出为自己的作品,这就是有效学习,我觉得非常有道理。 数据挖掘有人说爬虫写起来没有思路,没有框架,其实是没有真正的理解到爬虫的内涵,爬虫最重要的几步如下: 分析网页、解析网页、抓取数据、数据存储 导入第三方库
分析网页本期我们要抓取的是知网页面的论文信息,相信大家在视频里面就已经看过了,第一步我们需要找到我的知网页面,我们知道知网反爬措施比较的严格,我们需要利用Python的自动化模块进行抓取,同时我们需要加入伪装头,需要延时请求页面,当然如果你要做比较大的项目更需要图像识别功能,绕开我们验证码阻碍。 在项目的演示视频中,我们首先需要输入我们的关键词,但是对于我们的浏览器,它是如何知道我们输入的文字呢?这个效果就需要借助我们Python第三方库:selenium Selenium语法详解Selenium(浏览器自动化测试框架)?是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。 Selenium的配置 1、安装 Selenium模块:? pip? install? Selenium 2、下载浏览器驱动,Selenium3.x调用浏览器必须有一个webdriver驱动文件 ??? Chrome驱动文件下载:点击下载chromedrive Selenium的调用
add_experimental_option('excludeSwitches', ['enable-automation'])是开启开发者模式,可以有效的解决反爬的一些问题 如果看到这里,你可能比较懵,因为你不了解这个模块的语法和应用,下面详细的介绍一下 Webdriver模块的使用控制浏览器操作的一些方法?
鼠标事件 在 WebDriver 中, 将这些关于鼠标操作的方法封装在 ActionChains 类提供。 键盘事件 Selenium中的Key模块为我们提供了模拟键盘按键的方法,那就是send_keys()方法。它不仅可以模拟键盘输入,也可以模拟键盘的操作。 常用的键盘操作如下: 组合键的使用 获取断言信息 不管是在做功能测试还是自动化测试,最后一步需要拿实际结果与预期进行比较。这个比较的称之为断言。通过我们获取title 、URL和text等信息进行断言。 解析网页我们可以通过Xpath或者beautifulsoup进行标签提取
定位元素的使用 说么这么多,其实你有可能还是比较的迷茫,下面我们通过一个具体的网页来了解一下
通过id进行定位第一个input框: find_element_by_id("key") 通过name进行定位第一个input框:find_element_by_name("username") 通过classname进行定位第一个input框:find_element_by_class_name("xie") 通过标签tag进行定位input框:find_element_by_tag_name("input")??? 通过完整超链接定位a标签: find_element_by_link_text("百度一下")【推荐使用】 当然我们也可以用xpath进行定位
对于这个里面的语法,我们这里只是简单的了解一下,至于如何深入的去了解这个,还是要去官方的站点看看 抓取数据
这里我们的w是0,我们第一次就不会获取w的属性文本值,这样就可以极大的获取到我们有效数据,除此之外,我们使用列表存储,这里利用到Python的迭代库里面的语法。 然后自动化的找到“下一页”的这个标签,之后利用click点击,达到效果 解析zip函数和zip_longest函数学习就是在发现问题之后,要去学习,不然永远只会停留在我们的最初水平 zip:用来使列表一一对应,该函数返回一个以元组为元素的列表。返回的列表长度为最短列表的长度
zip_longest具体可以用来对列表的一一对应,如果列表的长度不一致,则其会选择最长的那个列表,并将没有的填充为None(这个可以自己传参时设置)
我们继续开始下一步的学习 存储数据
这里比较的简单了,我们通过pands的方法dataframe对我们的数据进行存储到CSV文件里面,我们首先对标签进行的重述,然后有路径的描述,最后设置我们的编码,达到我们的存储效果。 数据挖掘总结数据挖掘到这里我们结束了,我们来理一下项目思路,首先我们回到知网爬取是比较的费工夫的,首先我们选择的是,自动化模块来解决,虽然在效率上有一点的不堪重任,但是对于我们初学者来说,还是比较的友好了,当然我们迫切需要数据的小白,也可以理解,最后我们利用里面的一些方法来模拟我们人工对浏览器发生的行为,这样可以极大的解决我们的反爬,达到我们的最终效果。 数据准备好了,这就结束了吗,可不是的,我们要从数据里面发掘有效地信息,最终用到我们的研究中去,这就需要我们有足够的的数据分析思维。 数据分析词云图
这里我们选取我们jieba库,它是一个非常强大的中文分词库,此外我们用词云展示的是pyecharts这个库,这个库是我自己比较喜欢的可视化第三方库之一。因为强大,所以喜爱! 分词思路 我们首先知道我们分词的意义,我们的jieba只会把我们的词语分成我们的一些中文词组,有一些四字词语,三个字,两个字,一个字的,所以我自创了一种分词程序,适用多种场景的分词,我们可以根据我们的具体需要对其进行选择,部分代码如下:
大数据一词组 大数据二词组 大数据三词组 大数据四词组 我们这里通过不同的功能按钮,选出不同的词云图 饼图绘制
代码资源下载(直接运行)资源大放送!本期的文章到这里就结束了,喜欢的小伙伴欢迎评论区留言,赠送爬虫知识案例大礼包 留言格式:481255662@qq.com 每文一语
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 8:12:29- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |