python 爬虫新手入门教程

时间:2023-03-10 04:18:55
python 爬虫新手入门教程

python 爬虫新手教程

一、什么是爬虫

爬虫就是把一个网站里的内容读取下来

这里我们就要学习一个知识

我们看到的网页是有一种叫HTML的语言编写的

他可以给文字显示不同的样式

如:<p>hello</p> 就会显示段落:hello

二、如何获取网页的内容

一般爬虫不会把网页内容爬下来

而是把网页源代码爬下来

就好比说:hello 会爬到 <p>hello</p>

如果要在浏览器上看源代码

只需在网页上右键点击 选择查看网页源代码即可

那么怎么用python把源代码爬下来呢?

这是要下载一个模块

在cmd里输入:

pip install requests

然后就可以用模块requests爬网页了

import requests  # 导入模块

url = 'https://sina.com.cn'  # 要爬的网址
html = requests.get(url) # 获取网页源代码
print(html.text) # 输出 注:需要text函数来返回源代码

输出:

python 爬虫新手入门教程

细心的人可以看到后面的代码有编码问题

python 爬虫新手入门教程

要把代码转成utf-8中文编码

import requests

url = 'https://sina.com.cn'
html = requests.get(url)
html.encoding = 'utf-8' # 将编码设为utf-8中文编码
print(html.text)

输出

python 爬虫新手入门教程

三、分析源代码

最后要在源代码中筛选出我们要的数据

需要用到模块 lxml

在cmd里输入:

pip install lxml

然后就要使用lxml来筛选数据

import requests
from lxml import etree url = 'https://sina.com.cn'
html = requests.get(url)
html.encoding = 'utf-8'
element = etree.HTML(html.text) # 获取html
result = element.xpath('//a/text()') # 进行筛选 for i in result:
print(i) # 输出

输出:

python 爬虫新手入门教程

其中核心语句是

result = element.xpath('//a/text()')

而 //a/text() 的意思是获取所以的a标签的值

而常用的xpath语法如下

nodename      选取此节点的所有子节点
/         从当前节点选取直接子节点
//         从当前节点选取子孙节点
.         选取当前节点
..         选取当前节点的父节点
@        选取属性
*          通配符,选择所有元素节点与元素名
@*        选取所有属性
[@attrib]          选取具有给定属性的所有元素
[@attrib='value']         选取给定属性具有给定值的所有元素
[tag]        选取所有具有指定元素的直接子节点
[tag='text']        选取所有具有指定元素并且文本内容是text节点

四、筛选实例

如果要在sina.com.cn读取部分新闻

python 爬虫新手入门教程

那么要在键盘上按下F12

点左上角的按钮

python 爬虫新手入门教程

鼠标悬停在新闻上再点击

在代码栏中找新闻

python 爬虫新手入门教程

再找到所有新闻的父元素

python 爬虫新手入门教程

这里可以看到ul的class为list-a news_top

在python中写:

import requests
from lxml import etree url = 'https://sina.com.cn'
html = requests.get(url)
html.encoding = 'utf-8'
element = etree.HTML(html.text)
result = element.xpath('//ul[@class="list-a news_top"]//a/text()') # 进行筛选 for i in result:
print(i)

输出

python 爬虫新手入门教程