Python爬虫:解决requests.get()中'params'未定义错误

在使用Python的requests库进行网页爬取时,我们经常使用requests.get()函数来获取网页内容。然而,有时我们会遇到NameError: name 'params' is not defined的错误。

本文将介绍这个错误的原因,并提供解决方案,帮助你顺利进行网页爬取。

错误分析

'params' is not defined错误意味着你在调用requests.get()函数时,传递了一个名为params的参数,但该参数在你的代码中没有被定义。

通常情况下,params参数用于向目标URL传递查询参数。例如,如果你想获取百度搜索结果页,你可以使用以下代码:

import requests

url = 'https://www.baidu.com/s'
params = {'wd': 'Python'}

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

print(response.text)

在这个例子中,params参数是一个字典,它包含了一个键值对:'wd': 'Python'。这表示我们想搜索关键词“Python”。

如果你在代码中没有定义params变量,或者你没有传递任何查询参数,那么就应该将params参数从requests.get()函数中移除。

解决方案

根据提供的代码,可以看到在发起HTTP请求时使用了一个params参数,但是在代码中并没有定义params变量,所以会报错。

如果不需要传递任何参数,可以直接将params参数移除。

以下是修改后的代码:

import requests
from bs4 import BeautifulSoup

# 定义目标网页的URL
url = 'http://www.dongni.cc/vodshow/1178.html'

# 发起HTTP请求
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36 Edg/99.0.1150.55'
}
response = requests.get(url=url, headers=headers)

# 解析网页内容
soup = BeautifulSoup(response.text, 'html.parser')

# 找到所有视频和音频的链接
video_links = soup.select('a[href$='.mp4']')
audio_links = soup.select('a[href$='.mp3']')

# 下载视频和音频文件
for link in video_links:
    video_url = link['href']
    video_title = link.text
    video_response = requests.get(video_url)
    with open(f'{video_title}.mp4', 'wb') as f:
        f.write(video_response.content)

for link in audio_links:
    audio_url = link['href']
    audio_title = link.text
    audio_response = requests.get(audio_url)
    with open(f'{audio_title}.mp3', 'wb') as f:
        f.write(audio_response.content)

修改后的代码中移除了params参数,并对headers的赋值方式进行了修正,使用了正确的字典格式。

希望这篇文章能够帮助你解决'params' is not defined错误,并顺利完成你的网页爬取任务!

Python爬虫:解决requests.get()中'params'未定义错误

原文地址: https://www.cveoy.top/t/topic/fQ7e 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录