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 学习 --- 最易上手的深度学习开源库 --- 安装及环境搭建