小白也能学会的Python爬虫通用公式,带你轻松入门Python爬虫!

110 篇文章 1 订阅
37 篇文章 0 订阅

本期教程我自创了一个python爬虫的万能通用公式并分享给大家。 学会这个方法,每次只需要进行简单修改,你就能轻松获取到许多网站上的信息。那么话不多说,我们现在就开始学习吧。

首先我们需要了解这个通用公式都有哪些步骤。其实,这个公式十分简单,只需要四个步骤,分别是:

1、导入需要用到的库
2、确定URL和请求头
3、编写获取数据的函数
4、调用函数

接下来,我们逐个进行讲解。

一、导入需要用到的库

在这个通用公式里,我们要用到的库只有两个,一个是requests,另一个就是lxml里的etree,并且在通用公式中,第一个步骤的代码不需要进行任何改动,具体代码如下:

import requests
from lxml import etree

二、确定URL和请求头

url就是我们想要爬取的网站的链接,而请求头是从网站上的源代码处复制过来的,具体方法如下:

在这里插入图片描述
在这里插入图片描述

以虎扑网为例,代码如下:

url='https://www.hupu.com/'

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36',
           'Referer': 'https://www.hupu.com/'}

三、编写获取数据的函数

首先我们要定义一个函数,因为都是实现获取数据的功能,所以我们将其命名为:get_data(),然后将设置好的headers传入,目的是为了防止反爬。encoding对应的是编码方式,这是为了防止获取到的网页内容乱码而设置的。

紧接着我们就是要设置selector选择器,然后通过xpath方法来获取内容对应的xpath路径。 xpath路径具体获取方法为: 右键点击网页任意空白处,选择检查。然后在弹出的窗口中,点击左上角的箭头符号,将箭头移动到你想要获取的数据位置,点击定位一下,然后再回到网页源代码处,点击右键,选择copy,再选择copy xpath,然后再将复制好的路径粘贴到我们编写的代码中。

在这里插入图片描述
在这里插入图片描述
最后我们需要用到print方法将对应的content内容打印出来。

具体实现代码如下:

def get_data(url):
    response = requests.get(url, headers=headers)
    response.encoding = 'utf-8'
    selector = etree.HTML(response.text)
    content = selector.xpath('//*[@id="newpcnews-1"]/div/div[2]/a[1]/div/text()')  
    print(content)

四、调用函数

函数定义好之后,我们就需要调用它,调用的方法就是将定义好的函数名称复写一遍,然后再将url传入即可。也可理解为这是在给整个代码设置一个开关,只有有了这一个开关,运行代码时程序才能跑起来。
具体代码如下:

get_data(url)

五、完整通用公式

学到此处,我们已经学会了python爬虫通用公式的所有步骤啦,将这些步骤的的代码放到一起,我们就可以得到爬虫通用公式的完整代码啦。

import requests
from lxml import etree

url='https://www.hupu.com/'

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36',
           'Referer': 'https://www.hupu.com/'}

def get_data(url):
    response = requests.get(url, headers=headers)
    response.encoding = 'utf-8'
    selector = etree.HTML(response.text)
    content = selector.xpath('//*[@id="newpcnews-1"]/div/div[2]/a[1]/div/text()')  
    print(content)


get_data(url)

运行这个代码,我们就得到了网页中的数据。

在这里插入图片描述

六、其他案例分享

但是此刻肯定有很多小伙伴想问,那我想要获取别的网站的数据时该如何修改代码呢?其实使用通用公式来获取别的网站数据时,我们只需要修改两个地方。

1、将步骤二中的url地址改成你想爬取的对应网站地址,
2、将步骤三中content对应的xpath路径修改为对应的数据路径(按照我教的方法重新复制一下即可哦)

那接下来我就带着大家用两个案例检验一下吧。

案例一:获取网易新闻的网站数据

网易新闻网址:

https://news.163.com/

在这里插入图片描述

网易新闻标题内容对应的复制出来的xpath路径:

在这里插入图片描述

//*[@id="js_top_news"]/div[2]/h2/a

那么我们需要修改的两处代码如下:

url = 'https://news.163.com/'

因为想要获取标题的文本内容,所以我们在网页中复制的xpath路径后,加上/text(),即:

content = selector.xpath('//*[@id="js_top_news"]/div[2]/h2/a/text()')

完整代码如下:

#1、导入需要用到的库
import requests
from lxml import etree

#2、确定URL和请求头
url = 'https://news.163.com/'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36',
           'Referer': 'https://news.163.com/'}

#3、编写获取数据的函数
def get_data(url):
    #请求我们想要访问的url,并设置请求头
    response = requests.get(url, headers=headers)
    #防止获取到的网页数据乱码,通常用utf-8即可,中文的编码方式是gbk
    response.encoding = 'gbk'
    #设置选择器
    selector = etree.HTML(response.text)
    #编写获取具体内容的xpath路径
    content = selector.xpath('//*[@id="js_top_news"]/div[2]/h2/a/text()')
    #将获取到的数据打印出来
    print(content)

#4、调用函数
get_data(url)

运行结果如下:

在这里插入图片描述

案例二:获取新浪新闻的网站数据

新浪新闻网址:

https://www.sina.com.cn/

新浪新闻标题内容对应的复制出来的xpath路径:

在这里插入图片描述

//*[@id="syncad_0"]/ul[1]/li[1]/a/

那么我们需要修改的两处代码如下:

url = 'https://www.sina.com.cn/'

因为想要获取标题对应的链接内容,而链接内容在标题a标签对应的href属性中,所以我们在网页中复制的xpath路径后,加上/@href,即:

content = selector.xpath('//*[@id="syncad_0"]/ul[1]/li[1]/a/@href')

完整代码如下:

#1、导入需要用到的库
import requests
from lxml import etree

#2、确定URL和请求头
url = 'https://www.sina.com.cn/'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36',
           'Referer': 'https://www.sina.com.cn/'}

#3、编写获取数据的函数
def get_data(url):
    #请求我们想要访问的url,并设置请求头
    response = requests.get(url, headers=headers)
    #防止获取到的网页数据乱码,通常用utf-8即可,中文的编码方式是gbk
    response.encoding = 'gbk'
    #设置选择器
    selector = etree.HTML(response.text)
    #编写获取具体内容的xpath路径
    content = selector.xpath('//*[@id="syncad_0"]/ul[1]/li[1]/a/@href')
    #将获取到的数据打印出来
    print(content)

#4、调用函数
get_data(url)

运行结果:

在这里插入图片描述

怎么样?这个python爬虫万能通用公式还是挺实用的吧?大家赶紧也自己动手试一试吧!如果你觉得本期教程对你有用的话,记得关注我给我点个赞哦~~

在这里插入图片描述

读者福利

小编是一名Python开发工程师,自己整理了一套最新的Python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。如果你也喜欢编程,想通过学习Python转行、做副业或者提升工作效率,这份【最新全套Python学习资料】 一定对你有用!

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑的!

1、学习时间相对较短,学习内容更全面更集中

2、可以找到适合自己的学习方案

我已经上传至CSDN官方,如果需要可以扫描下方二维码都可以免费获取【保证100%免费】

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、Python课程视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

img

三、精品书籍

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

在这里插入图片描述

四、清华编程大佬出品《漫画看学Python》

用通俗易懂的漫画,来教你学习Python,让你更容易记住,并且不会枯燥乏味。

img

五、Python实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、互联网企业面试真题

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

img

这份完整版的Python全套学习资料已经上传至CSDN官方,朋友们如果需要可以点击下方链接扫描下方二v码都可以免费获取【保证100%免费】

最新全套【Python入门到进阶资料 & 实战源码 &安装工具】

以上全套资料已经为大家打包准备好了,希望对正在学习Python的你有所帮助!

如果你觉得这篇文章有帮助,可以点个赞呀~

我会坚持每天更新Python相关干货,分享自己的学习经验帮助想学习Python的朋友们少走弯路!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值