如何用Python爬取网页上的信息

目录

前言

1.导包

2.写入表头

推荐网站(可以根据网页自动转化为表头):https://curlconverter.com/

3. 使用代理 IP 隐藏我们发送请求的真实 IP 地址

4.  获取该天气网页的地址

5. 用requests的get 向网站发起请求,并获取响应对象

6.打印response的状态码,并运行,如果是200就是正确的 

7.设置响应对象的编码格式 ,把response中的apparent_enconding赋值给response的enconding 

8.使用etree解析网页,在获取我们所需的xpath路径(可直接复制xpath路径,如下),在xpath后加text()是获取文本内容,加@href是href中的属性内容

9.运行结果如下 

总结


前言

用Python爬取网页上的信息

首先我们要明确自己要获取的内容是什么?在这里我们需要获取天气网里面的预报里面的信息,第一打开我们的F12开发者模式,找到我们需要的信息在哪个位置,然后我们需要爬取我们的网址和文本内容预报

1.导包

代码如下(示例):

import requests
from lxml import etree

注意:为了更好地组织Python代码,开发人员通常会根据不同业务将模块进行归类划分,并将功能相近的模块放到同一目录下。 如果想要导入该目录下的模块,就需要先导入包。 Python中的包是一个包含__init__.py文件的目录,该目录下还包含一些模块以及子包。 

2.写入表头

代码如下(示例):

 

推荐网站(可以根据网页自动转化为表头):https://curlconverter.com/

使用教程:打开F12开发者模式,找到Network中随便一个js文件,右击,复制Copy中的Copy as cURL

 打开我们的网站

3. 使用代理 IP 隐藏我们发送请求真实 IP 地址

 代码如下(示例):

prosies = {'http':'http://202.103.203.97:9091'}

注意:在站大爷里面获取的免费代理IP要和该IP的端口号相对应,不然要报以下错误(该错要不是你端口号错了,要不是你被网管发现了,被发现了只有换一个IP地址)

4.  获取该天气网页的地址

weather_url = 'http://www.weather.com.cn/'

5. 用requests的get 向网站发起请求,并获取响应对象

response = requests.get(weather_url, headers=headers,proxies=prosies)

6.打印response的状态码,并运行,如果是200就是正确的 

print(response.status_code)

7.设置响应对象的编码格式 ,把response中的apparent_enconding赋值给response的enconding 

response.encoding=response.apparent_encoding
属性说明
enconding从HTTP header中猜测的响应内容编码方式
apparent_encoding从内容中分析出的响应内容编码方式

encoding是从http中的header中的charset字段中提取的编码方式,若header中没有charset字段则默认为ISO-8859-1编码模式,则无法解析中文

apparent_encoding会从网页的内容中分析网页编码的方式,所以apparent_encoding比encoding更加准确。当网页出现乱码时可以把apparent_encoding的编码格式赋值给encoding。

8.使用etree解析网页,在获取我们所需的xpath路径(可直接复制xpath路径,如下),在xpath后加text()是获取文本内容,加@href是href中的属性内容

selector = etree.HTML(response.text)
procast_name = selector.xpath('/html/body/div[1]/div[1]/div[1]/div[2]/div/ul[1]/li[1]/a/text()')[0]
print(procast_name)
procast_herf = selector.xpath('/html/body/div[1]/div[1]/div[1]/div[2]/div/ul[1]/li[1]/a/@href')
print(procast_herf)

 在F12开发者模式中找到Elements中预报的定位,在该定位中右击,Copy中到Copy XPath

9.运行结果如下 

 


总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,本文仅仅简单介绍了如何用python爬取网页上的数据

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值