python 爬虫新手入门教程

python 爬虫新手入门教程python爬虫新手教程一、什么是爬虫爬虫就是把一个网站里的内容读取下来这里我们就要学习一个知识我们看到的网页是有一种叫HTML的语言编写的他可以给文字显示不同的样式如:<p&gt

大家好,又见面了,我是你们的朋友全栈君。

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函数来返回源代码

输出:

<span role="heading" aria-level="2">python 爬虫新手入门教程

 

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

<span role="heading" aria-level="2">python 爬虫新手入门教程

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

import requests

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

输出

<span role="heading" aria-level="2">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)  # 输出

输出:

<span role="heading" aria-level="2">python 爬虫新手入门教程

 

 

其中核心语句是

result = element.xpath(‘//a/text()’)

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

而常用的xpath语法如下

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

 四、筛选实例

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

 <span role="heading" aria-level="2">python 爬虫新手入门教程

 

那么要在键盘上按下F12

点左上角的按钮

 <span role="heading" aria-level="2">python 爬虫新手入门教程

鼠标悬停在新闻上再点击

在代码栏中找新闻

 <span role="heading" aria-level="2">python 爬虫新手入门教程

 

 再找到所有新闻的父元素

<span role="heading" aria-level="2">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)

 输出

<span role="heading" aria-level="2">python 爬虫新手入门教程

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/155837.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 激活函数-Sigmoid, Tanh及ReLU

    什么是激活函数在神经网络中,我们会对所有的输入进行加权求和,之后我们会在对结果施加一个函数,这个函数就是我们所说的激活函数。如下图所示。为什么使用激活函数我们使用激活函数并不是真的激活什么,这只是一个抽象概念,使用激活函数时为了让中间输出多样化,能够处理更复杂的问题。如果不适用结果函数的话,每一层最后输出的都是上一层输入的线性函数,不管加多少层神经网络,我们最后的输出也只…

  • Runnable接口详细详解「建议收藏」

    Runnable接口详细详解「建议收藏」创建线程对象,默认有一个线程名,以Thread-开头,从0开始计数构造函数Thread()Thread-0Thread-1Thread-2其他构造方法Thread(Runnabletarget)如果在构造thread的时候没有传递Runnable或者没有复写Thread的run方法,该thread将不会调用任何的东西,如果传递了Runnable接口的实例,后者复写了Thread的run方法,则会执行该方法的逻辑单元(逻辑代码)publicclassCreateThread2..

  • python读取pkl_Python读取文件的一段内容

    python读取pkl_Python读取文件的一段内容以mnist.pkl为例方法一:然而我的还是会出现EOFError,无解,郁闷方法二:dataset=’mnist.pkl’datasets=load_data(dataset)train_set_x,train_set_y=datasets[0]valid_set_x,valid_set_y=datasets[1]test_set_x,test_s

  • 架设ftp服务器从入门到精通[通俗易懂]

    架设ftp服务器从入门到精通[通俗易懂]1.FTP是什么FTP的全称是FileTransferProtocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。FTP服务器则是在互联网上提供存储空间的计算机,它们依照FTP协议提供服务。当它们运行时,用户就可以连接到服务器上下载文件,也可以将自己的文件上传到FTP服务器中。有时把FTP服务器简称为FTP。FTP服务器的存在,大大方便了网友之间远程交换文件资料的需要,充分体现了互联网资源共享的精神。现在许多朋友都已经用上了宽带网,而且硬盘也有足够的空间,完全可以通过软件手段把自己的

  • 关于0xffffffff 到底是什么意思?

    关于0xffffffff 到底是什么意思?0x16进制一个f代表4个1, 所以就是2进制的32个1.但是运行一下下面这个代码就会发现输出的是-1#includeusingnamespacestd;intmain(){inti=0xffffffff;cout<

  • Linux下安装jdk7

    Linux下安装jdk7

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号