Python爬虫入门——静态网页抓取

本文介绍如何使用Python的Requests库抓取静态网页,并演示了定制请求、解析响应等操作。通过实例展示如何爬取豆瓣TOP250电影名称。

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

Python爬虫入门——静态网页抓取

安装Requests

    pip install requests

获取响应内容:

import requests
r = requests.get('https://blog.youkuaiyun.com/ARPOSPF')
print("文本编码:",r.encoding)
print("响应状态码:",r.status_code)
print("字符串方式的响应体:",r.text)

        (1)r.text是服务器响应的内容,会自动根据响应头部的字符编码进行解码

        (2)r.encoding是服务器内容使用的文本编码

        (3)r.status_code用于检测响应的状态码,如果返回200,就表示请求成功,如果返回4**,表示客户端错误,如果返回5**,表示服务器错误响应。

        (4)r.content是字节方式的响应体,会自动解码gzip和deflate编码的响应数据

        (5)r.json()是Requests中内置的JSON解码器

定制Requests

    传递URL参数:

        为了请求特定的数据,需要在URL的查询字符串中加入某些数据,数据一般会跟在一个问号后面,以键/值的形式放在URL中,如http://httpbin.org/get?key1=value1。

    定制请求头:

        请求头Headers提供了关于请求、响应或其他发送实体的信息。Requests并不会基于定制的请求头Headers的具体情况改变自己的行为,只是在最后的请求中,所有请求头信息都会被传递进去。

       

    发送POST请求:

        通过POST请求传递一些表单数据,只需要简单地传递一个字典给Requests中的data参数,这个数据字典就会在发出请求的时候自动编码为表单形式。

    超时

        可以在Requests在timeout参数设定的秒数结束之后停止等待响应。一般会把这个值设置为20秒。如果在20秒内没有应答,则返回异常。

Requests爬虫时间:TOP250电影数据

import requests
from bs4 import BeautifulSoup
def get_movies():
    headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',
          'Host':'movie.douban.com'}
    movie_list = []
    for i in range(0,10):
        link = 'https://movie.douban.com/top250?start='+str(i*25)
        r = requests.get(link,headers=headers,timeout=20)
        print(str(i+1),"页面响应状态码:", r.status_code)
        
        soup = BeautifulSoup(r.text,"lxml")
        div_list = soup.find_all('div',class_='hd')
        for each in div_list:
            movie = each.a.span.text.strip()
            movie_list.append(movie)
    return movie_list
movies = get_movies()
print(movies)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

镰刀韭菜

看在我不断努力的份上,支持我吧

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

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

打赏作者

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

抵扣说明:

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

余额充值