python之网页爬取

本文介绍了Python网络爬虫的基础知识,包括requests库的使用方法、处理网页请求的常见代码框架及注意事项。此外还探讨了不同规模爬虫的选择,并展示了如何通过修改请求头来访问受限网站,以及如何爬取图片等具体实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python学习之旅

虽然我以后更多的可能要与硬件打交道,但是python还是很有意思的,作为爱学习的我,必须要学习学习,为了督促自己,以后每天更新博客,展示一下自己学习的知识。嘻嘻嘻嘻

网络爬虫入门知识

requests库入门

  • requests.requests()
  • requests.get()——最常使用的的方法
  • requests.head()——对于比较大的链接,用这个方法获得其资源概要
  • requests.post()
  • requests.put()
  • requests.patch()
  • requests.delete()
需要掌握的爬取网页的代码框架
try:
   r=requests.get(url,timeout=30)
   r.raise_for_status()——如果返回的状态码不时200,就返回异常
   r.encoding =r.apparent_encoding
   return r.text
except:
   return "产生异常" 

网络连接有风险,处理风险按需要谨慎

网络爬虫引发的问题
规模主要功能
爬取网页,玩转网页小规模,数据量小,爬取速度不敏感,requests库
爬取网站,爬取系列网站数据规模比较大,速度很敏感,scrapy库
爬取全网大规模搜索引擎,速度是关键——定制开发的

小规模的爬虫占据的爬虫数量的90%,爬虫对于网站的运行者而言形成骚扰,实际的网络对于网络爬虫有一定的限制。

Robots协议

作用:网站告知爬虫那些压面可以抓取,那些不行
京东的robots协议:京东

如下所示:

User-agent: * 
Disallow: /?* ——不允许访问的
Disallow: /pop/*.html 
Disallow: /pinpai/*.html?* 
User-agent: EtaoSpider ——以上的四种爬虫不允许爬取京东任何资源
Disallow: / 
User-agent: HuihuiSpider 
Disallow: / 
User-agent: GwdangSpider 
Disallow: / 
User-agent: WochachaSpider 
Disallow: /

以及还有百度的Robots协议
Robots协议一定是放在网站的根目录下


对亚马逊网站的信息爬取
以下是访问亚马逊网页的全部代码

import requests
url="........"
try:
   kv={'user-agent':'Mozilla/5.0'}
   r.requests(url,headers=kv)
   r.raise_for_status()
   r.encoding=r.apparent_encoding
   print(r.text[:1000])
except:
   print("获取失败")

解释:有些网站限制爬虫的访问,这时候要更改头部,把requests标识更改为mozilla浏览器访问


百度,360关键字搜索
百度的搜索关键词接口:http://www.baidu.com/s?wd=keyword
360的关键词接口:
http://www.so.com/s?q=keyword

以下是获取百度关键字搜索的相关代码

import requests
keyword='python'
try:
   kv={'wd':keyword}
   r=requests.get("http://www.baidu.com/s",params=kv)
   print(r.requests.url)
   r.raise_for_status()
   print(len(r.text))
except:
   print("获取失败")

360搜索的全代码

import requests
keyword="python"
try:
   kv={'wd':keyword}
   r=requests.get("http://www.so.com/s",params=kv)
   print(r.requests=.url)
   r.raise_for_status()
   print(len(r.text))
except:
   print("获取失败")

网络图片的爬取和存储
网络上常见图片连接的格式:
http://www.example.com/picture.jpg

r.content表示的是二进制形式
以下是图片爬取的全代码:

import requests
import os//为什么呢
url="https://b-ssl.duitang.com/uploads/item/201409/10/20140910212044_HuSke.thumb.700_0.png"
root="D://abc.jpg"
path=root

ip地址查询全代码

import requests
url = "http://m.ip138.com/ip.asp?ip="
try:
   r=requests.get(url+'202.204.80.112')
   r.raise_for_status()
   r.encoding=r.aparent_encoding
   print(r.text[-500:])
 except:
    print("爬取失败")

关于使用BeautifulSoup库,只需要使用两行代码

from bs4 import BeautifulSoup
soup=BeautifulSoup('<p>data</p>','html.parser')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱码仕1024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值