python爬虫阶段性总结和项目实操——爬取猫眼票房Top100

本博客通过爬取猫眼票房Top100来简要复习一下网页的HTML获取(requests库)解析(Beautiful Soup库)和数据保存(csv库)以及总结一下爬取过程中遇到的问题和解决方法

运行结果如下

在这里插入图片描述
在这里插入图片描述

1.获取网页源代码

def get_one_page(url):
        headers={
   
            'User-Agent':'your_UA',
            'Cookie':'your_cookie'
        }
        try:
        	response=requests.get(url,headers=headers)
            response.raise_for_status()  
            response.encoding=html.apparent_encoding
            return response.text
        except:
            return "产生异常"

获取网页HTML用的是requests库的get方法
获取网页最简单的方法就是:

response=requests.get(url)

get方法返回的是Response对象这是一个非常重要的对象有以下重要的属性:

属性 说明
r.status_code HTTP请求返回状态,200成功,404失败
r.text HTTP响应内容的字符串形式
r.encoding 从HTTP header中猜测出的响应内容编码方式
r.apparent_encoding 从内容中分析出的响应内容编码方式(备选编码)
r.content HTTP响应内容的二进制形式

一般网站都有反爬虫措施,可以识别出这是爬虫从而返回一些奇奇怪怪的东西而这些字符串并不是我们想要的网页源代码,因此我们要在请求中添加请求头来伪装浏览器,请求头通过get方法的headers参数引入

response= requests.get(url,headers=headers)

headers参数接受一个字典,其中可以包括Cookie,User-Agent等信息
get方法还可以接受timeout参数来限定请求的时间(超过时间抛出异常)

爬取网页并不是每次都一定能成功的,因此异常处理十分重要,可以通过try-except语句来捕获异常

Response对象的raise_for_status 方法是专门与异常打交道的方法如果返回的状态码不是200,将产生异常requests.HTTPError
apparent_encoding是从响应内容中分析出的编码方式,一般比encoding更加可靠所以用apparent_encoding来替换encoding

以上是爬取网页的通用代码框架

2.解析HTML文档提取相关信息并保存

第一步成功返回了网页源代码接下来要做的就是解析提取信息并保存到本地,这一步用到的是bs4库中的BeautifulSoup对象和csv库

def parse_one_html(html):
    soup=BeautifulSoup(html,'lxml')
    names=soup.find_all('p',attrs={
   'class'
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值