Python3+Selenium获取笑话内容,丰富个人博客、微博或QQ空间

先来花2分钟看下视频中效果

Python+Selenium实现思路

Python3+Selenium获取笑话内容,丰富个人博客、微博或QQ空间

无论咱们在做任何项目的时候,我们都应该先要有一个整体的设计图,比如建房子需要建筑图,做家装的需要装修图,施工人员需要施工图。所以我们在做研发的时候也是一样的,首先我们要明确我们想要做的东西,做成什么样子,最终的结果在心里有一个预想。

Python+Selenium任务分解及代码实现

Python3+Selenium获取笑话内容,丰富个人博客、微博或QQ空间

python和selenium环境安装我这里就不给大家介绍了,毕竟网上教程一大堆,自己动手搜索一下即可

一、明确我们想要爬取的内容


Python3+Selenium获取笑话内容,丰富个人博客、微博或QQ空间

  1. 比如我们想要获取实时新闻,那么我们可以爬取一些热门新闻网站的内容,比如腾讯,今日头条等各大网站的推荐内容。如果我们想要获取娱乐八卦内容,那么我们可以爬取新浪微博上面的一些娱乐内容。如果我们想要获取搞笑内容,那么我们可以爬取一些笑话网站的内容。
  2. 当我们明确爬取目标之后,我们需要去分析网页内容,分析网页中每一篇文章异同点,只有找到了共通点,我们才可以持续不断的获取网站内容。比如我爬取的笑话天地的内容。打开你要爬取的内容页面,然后按下F12,鼠标左键点击下方图片中标注的图标,然后点击页面上内容。
Python3+Selenium获取笑话内容,丰富个人博客、微博或QQ空间

3.比如我获取到了文章的标题,然后直接右键依次拿到这个标签的xPath即可。这个值我们后面就是我们爬虫需要定位到的元素值。就好比我们每一个人都有一个居住地址,你的朋友会根据这个地址找到我们的人。爬虫就是你的朋友。而XPath就是你想要内容的居住地址。然后依次找到我们想要的内容地址,把它们都保存起来。

Python3+Selenium获取笑话内容,丰富个人博客、微博或QQ空间

二、内容保存的方式

当我们通过第一步找到我们想要的内容,那么我们需要将内容存放在哪里,以供我们后面使用呢?其实保存数据的方式有很多种,根据不同的数据类型可以选择不同的保存方式。比如常见的保存方式有以文本的形式保存,也可以用数据库来保存。

  1. 文本存储:就是将我们获取到的数据内容通过文本的方式保存到硬盘中,保存文本的Python代码如下。因此我们只需要在获取到内容的时候,写入到文本文件即可。
<code>#相当于打开了一个test.txt的文本文件,以write的方式
f1 = open('/tmp/test.txt','w')
#写入内容,蜜蜂攻城狮的英文,当然还可以选择编码格式,
f1.write('mifenggongchengshi')/<code>
Python3+Selenium获取笑话内容,丰富个人博客、微博或QQ空间

2.数据库存储:可以根据自己的获取到的数据类型选择不同的数据库,比如mongoDB,MySql,Oracle均可,因为我的服务器上安装了Mysql,并且我的数据比较单一,因此我选择了mysql来存储数据,详细代码如下

<code>#首先在代码中导入
import pymysql

# 打开数据库连接,编码格式为UTF-8
conn = pymysql.connect (host='你的IP', port=3306, user='用户名', passwd='密码', db='数据库名',
charset='utf8')
# 获取游标
cursor = conn.cursor ()
#执行咱们的sql语句,在这里我们查询
cursor.execute ('select num from xiaohuatiandi')
#然后获取一条数据即可
data = cursor.fetchone ()/<code>

三、博客登录

  1. 当我们得到数据后,我们需要登录到博客后台,自动登录系统基本都是差不多的,无非就是很多的网站加入了反爬校验。只需要根据特定的网站进行特定代码编写即可。下面是我的博客登录代码
<code>   # 模拟创建一个浏览器对象,然后通过对象去操作浏览器
browser1 = webdriver.Chrome (executable_path=driver_path)
# 发送请求
browser1.get ('http://blog.zhaoyueyi.cn/wp-login.php?redirect_to=http%3A%2F%2Fblog.zhaoyueyi.cn%2Fwp-admin%2F&reauth=1')
# 登录博客后台
time.sleep (5)
#//*[@id="user_login"]这个就是我们在第一节说到的xpath地址。
browser1.find_element_by_xpath ('//*[@id="user_login"]').send_keys ('账户名')
browser1.find_element_by_xpath ('//*[@id="user_pass"]').send_keys ('密码')
\t\t\t\t#然后模拟点击登录按钮

browser1.find_element_by_xpath ('//*[@id="wp-submit"]').click ()/<code>

当然,在咱们登录的时候,有很多网站需要输入或者滑动校验码。而我常用的校验码是超级鹰,超级鹰用起来非常简单。这里我就不给大家展示了,不明白的可以下方留言。另外如果有验证码的咱们也可以做成半自动,即手动输入验证码。如果大家有兴趣,还可以使用cookie技术实现免登陆。cookie免登陆这个在网上也能找到,如果不明白的可以下方咨询,我会给大家提供技术指导。

四、内容发布

  1. 当我们登陆到平台后,我们就可以将上面获取到的内容发布到平台上了,正如我上方视频演示的一样,只需要你按照教程中的方式,找到每一个标签的xpath即可,然后模拟咱们人的行为,让爬虫自己去完成这一系列操作
  2. 咱们获取到的内容是别人创作的内容,因此,我们在选择发布的时候,我们需要尊重别人的劳动成果,加上原创者的信息,转载地址等等。还可以留下自己的联系方式,如果有侵权行为,作者可以及时的联系到你。
Python3+Selenium获取笑话内容,丰富个人博客、微博或QQ空间

五、设置定时任务

当我们完成了脚本的研发, 并且测试通过之后没有问题后,我们需要设置一个定时任务,让其自动运行,无须咱们操作。windows类型的任务创建的方法大家也可以参考下图,linux不同的系统可以查阅相关资料设置,我这边使用的是centos,因此我使用的是cron来实现的。

Python3+Selenium获取笑话内容,丰富个人博客、微博或QQ空间

总结

按照这一个思路,其实你已经可以解决目前80%的内容爬取。其实爬虫难得不是数据的获取,而是数据的筛选以及整理。

注意注意注意:在爬取之前,一定要查看被爬网站的robots文件,这个文件里面有说明那些内容可爬,那些不可爬。本文只做技术分享,请勿滥用。

以上内容均为今日头条原创首发,转载请注明来源,如有疑问可下方留言或私信我。

我是蜜蜂,我爱编程

2020年3月11日,By:蜜蜂攻城狮


分享到:


相關文章: