Python 爬虫新手教程,最易上手,跟着一起动手

Posted yunyun云芸

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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函数来返回源代码

输出:

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

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

import requests

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

输出

三、分析源代码

最后要在源代码中筛选出我们要的数据
需要用到模块 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)  # 输出

输出:

其中核心语句是

 result = element.xpath('//a/text()') 
而 //a/text() 的意思是获取所以的a标签的值

而常用的xpath语法如下:

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

四、筛选实例

如果要在sina.com.cn读取部分新闻
那么要在键盘上按下F12
点左上角的按钮

鼠标悬停在新闻上再点击
在代码栏中找新闻

再找到所有新闻的父元素

这里可以看到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 爬虫新手教程,最易上手,跟着一起动手的主要内容,如果未能解决你的问题,请参考以下文章

MXNet 学习 --- 最易上手的深度学习开源库 --- 安装及环境搭建

Git史上最易上手详细教程

自然语言处理动手学Bert文本分类

自然语言处理动手学Bert文本分类

❤️大佬都在学什么?Python爬虫分析C站大佬收藏夹,跟着大佬一起学, 你就是下一个大佬❤️!

Python自学六个易上手的免费Python实战项目,游戏图片转字符破解验证码...