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 爬虫新手入门教程

 

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java进阶学习路线图「建议收藏」

    Java进阶学习路线图「建议收藏」第一阶段技术名称技术内容J2SE(Java基础部分)java开发前奏计算机基本原理,Java语言发展简史以及开发环境的搭建,体验Java程序的开发,环境变量的设置,程序的执行过程,相关反编译工具介绍,java开发工具Eclipse的安装和使用,javadoc的说明。Java基

    2022年5月16日
    38
  • 新手入门树莓派必做的四件事

    新手入门树莓派必做的四件事随着树莓派在国内的热度越来越高,现在已经有很多人开始接触树莓派了。对于新手,有四件必须完成的事:1、为树莓派更换国内源。2、让Raspbian系统显示中文。3、安装中文输入法。4、调整树莓派的时区时间。不过安装一个合适的系统才是这四件事的前提,众多系统中,Raspbian算比较适合新手的。安装系统如果安装Raspbian系统,可以通过这个链接下载镜像

    2022年5月9日
    68
  • 服务降级和服务熔断

    服务降级和服务熔断转载自:https://blog.csdn.net/llianlianpay/article/details/79768890 服务熔断  在微服务架构中,微服务之间的数据交互通过远程调用完成,微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,此时如果链路上某个微服务的调用响应时间过长或者不可用,那么对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,导致“雪崩…

    2022年6月7日
    32
  • chip seq实验原理及步骤_思科真机实验环境搭建

    chip seq实验原理及步骤_思科真机实验环境搭建实验内容通过实验环境学习了解SR-PCE。xrv_7作为PCE,计算PE1到PE2的路径。网络中IP设置,metric值与之前的实验一致。拓扑图配置流程:配置SRGB在IGP(is-is)中使能segmentrouting和NodeID修改IGP和TE的链路metric配置PCE我们这次主要关注配置PCE的过程。前面的配置可以参考:SR-TEPolicy(思科)—-explicitpath实验SR-TEPolicy(思科)—-dynamicpath实验P

    2022年9月7日
    1
  • gradle下载慢的问题[通俗易懂]

    gradle下载慢的问题[通俗易懂]gradle下载慢的问题开发工具:IntelliJIDEA&AndroidStudio问题:新建项目下载gradle慢的问题最好的解决办法,翻墙。有些问题,在Google和stackoverflow上很容搜索出来(万恶的百度),还有很多项目文件Github学习到很多。推荐买一个,推荐一个我从大二就开始用的便宜稳定的,里面还有教程。获需要的可以关注公众号:Gremlin回复:v即可获取…

    2022年6月15日
    24
  • Linux系统调用四、lseek()函数详解「建议收藏」

    Linux系统调用四、lseek()函数详解「建议收藏」Linux系统调用之lseek()函数详解。

    2022年6月16日
    30

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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