首页 > 编程语言 >Python爬虫Post请求返回值为-1000

Python爬虫Post请求返回值为-1000

时间:2024-07-16 21:20:23浏览次数:12  
标签:Python request content url ashx Post data page 1000

今天写了一个简单的爬虫程序,为了爬取kfc官网的餐厅数据,代码如下

# ajax的post请求--肯德基官网

def create_request(page):
    url='http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx'
    data={
	'cname':'濮阳',
	'pid':'',
	'pageIndex':page,
	'pageSize':10
	}
    new_data=urllib.parse.urlencode(data).encode('utf-8')
    headers={
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0'
}
    # post方式不能直接拼接,要在请求对象定制的方法中加入该参数
    request=urllib.request.Request(url=url,headers=headers,data=new_data)
    return request

def get_content(request):
    response=urllib.request.urlopen(request)
    content=response.read().decode('utf-8')
    return content

def load_content(page,content):
    with open('kendeji'+str(page)+'.json','w',encoding='utf-8') as fp:
        fp.write(content)
    
  
if __name__=='__main__':
    start_page=int(input('请输入起始页码'))
    end_page=int(input('请输入终止页码'))
    for page in range(start_page,end_page):
        request=create_request(page)
        content=get_content(request)
        print(f"页面 {page} 的内容: {content}")
        # load_content(page,content)

结果如下图:

原因如下:

1.URL中的参数没有复制全

我的URL:

url='http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx'

正确的URL:

url='http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=cname'

修改后的代码运行结果如下:

标签:Python,request,content,url,ashx,Post,data,page,1000
From: https://www.cnblogs.com/lxxa/p/18306133

相关文章

  • python的浅复制
    天天用着python写代码,但是其实很多东西原理都不是很清楚,还是得知其所以然,否则处处踩坑关键词:递归、列表、set,边遍历边修改边遍历边修改是一件很危险的行为,小白无知,竟然大胆的使用了,还莫名其妙work了,然后进入了细致的分析。第一种情况defbacktracing(index):globalc......
  • PYTHON用时变马尔可夫区制转换(MARKOV REGIME SWITCHING)自回归模型分析经济时间序列|附
    全文下载链接:http://tecdat.cn/?p=22617最近我们被客户要求撰写关于MRS的研究报告,包括一些图形和统计输出。本文提供了一个在统计模型中使用马可夫转换模型模型的例子,来复现Kim和Nelson(1999)中提出的一些结果。它应用了Hamilton(1989)的滤波器和Kim(1994)的平滑器  %matplot......
  • 十天学会Python——第6天:面向对象
    1面向对象1.1类和对象(用类创建对象)类的语法:class类名():执行的代码对象的语法:对象名=类名()classWasher(): #定义类defwash(self): print("可以洗衣服")print(self) #返回结果是跟下面gree的地址一样gree1=Washer()......
  • 深入解析 Python 文件操作利器 —— shutil
    在Python编程中,文件操作是一个常见且重要的任务。无论是复制文件、移动文件还是压缩文件,Python都提供了强大的库来简化这些操作。其中,shutil库无疑是文件操作的得力助手。本文将深入探讨shutil库的各种功能,包括文件复制、内容覆盖、文件移动和重命名、文件删除、文件......
  • 【已解决】完美解决Python2操作中 文名文件乱码 问题:深入解析与策略
    【已解决】完美解决Python2操作中文名文件乱码问题:深入解析与策略亲测有效一、乱码问题的根源剖析二、优雅处理乱码问题的策略1.统一编码:2.正确处理文件路径:3.异常处理:4.环境适配:三、示例代码与最佳实践四、扩展应用与高级技巧五、总结与展望一、......
  • python 基础知识点(一)
    1.Python可以将一条长语句分成多行显示的续行符号是 \2.缩进可以用tab键实现,也可以用多个空格实现3.在Python中,使用缩进对齐来标记语句块4.在Python中,使用缩进对齐来体现代码之间的逻辑关系。5.严格的缩进可以约束程序结构,可以多层缩进6.Python中......
  • python-B树
    B树B树1.节点作为子节点2.列表作为子节点可扩展多阶B树"""B树:拥有最多子节点的节点的子节点数列称为B树的阶B树是一颗多路查找树,满足以下条件:1.定义任意非叶节点最多只有M个子节点,且M>22.根节点的子节点数为[2,M]3.除根节点以......
  • python 基础之 scrapy 当当数据一演示
    Items程序importscrapyclassDangdangItem(scrapy.Item):#definethefieldsforyouritemherelike:#name=scrapy.Field()src=scrapy.Field()name=scrapy.Field()price=scrapy.Field()spider程序importscrapyclassDangSpider(......
  • 量化交易:如何在QMT中运行Python策略并在VSCode中高效调试?
    哈喽,大家好,我是木头左!为何选择QMT和VSCode进行量化策略开发?在量化交易的世界里,选择正确的工具与拥有优秀的策略同等重要。调用用VisualStudioCode(简称VSCode)或pycharm,方式都差不多。结合QMT的数据处理能力和VSCode的便捷调试功能,可以极大地提高量化策略的开发效率和质量。......
  • HTTP服务工具类,包括带参数的 post/http get/http get 方法
    1、导入maven依赖<!--apachehttpclient客户端工具包--><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.3</version>......