python:写你的第一个爬虫代码

news2024/11/15 23:29:37

什么是爬虫

爬虫spider,是指向网站或者网络发出请求,获取资源后分析并提取对自己有用的数据的程序。

在这里插入图片描述
request:是指用户将自己的信息通过浏览器发送给服务器。
response:服务器收到用户的请求分析后,返回的数据。
注意:浏览器在接收到服务器的response后,会解析出显示给用户,爬虫程序主要就是模拟浏览器向服务器发出请求并且接收到response后,提取自己需要的数据的过程。

request
请求方式:get/post
请求的url:用来定位互联网上的唯一资源。
User-agent:没有请求头,服务端会当作非法用户host。
cookies:用来保存登录信息。
爬虫程序一般都需要请求头~
请求有需要注意的几个参数:referrer/User-Agent/cookie
请求体:分两种情况,get请求不包含请求体,直接从放在url后面的参数中,如果post请求,请求体就是format data。

response
响应状态:~200:成功 ~301:跳转 ~404:文件不存在 ~403:无权限访问 ~502:服务器错误
response header:响应头需要注意的参数:set-Cookie:BDSVRTM=0;path=/: 可能会有多个参数,用来告诉浏览器,把cookie保存下来。
preview:json数据

获取百度网页数据并放到文件中
在这里插入图片描述

from urllib.request import urlopen

url = "http://www.baidu.com"

resp = urlopen(url)

with open("mybaidu.html",mode="w") as f:
  f.write(resp.read().decode("utf-8"))

print("over!")

百度翻译,输入一个单词并翻译

import requests
url = "https://fanyi.baidu.com/sug"
s = input("请输入你要翻译的单词:")
data = {
  "kw":s
}
# 发送post请求,发送的数据必须放在字典中,通过data参数进行传递
resp = requests.post(url,data=data)
# 将服务器返回来的内容直接处理成json() =>dict
print(resp.json())
resp.close() #关掉resp

获取豆瓣的电影排行榜数据

import requests

url = "https://movie.douban.com/j/chart/top_list"

# 重新封装参数
param = {
  "type": "11",
  "interval_id":"100:90",
  "action":"",
  "start": 0,
  "limit": 20
}
headers = {
  "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36X-Requested-With: XMLHttpRequest"
}
resp = requests.get(url=url,params=param,headers=headers)
print(resp.json())
resp.close() #关掉resp

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/111813.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Pandas入门教程】如何选择DataFrame的子集

如何选择DataFrame的子集 来源:Pandas官网:https://pandas.pydata.org/docs/getting_started/intro_tutorials/index.html 文章目录如何选择DataFrame的子集导包数据准备【1】如何从DataFrame中选择特定列?【2】如何从DataFrame中筛选特定行【…

读研2年,我选择从中科院退学转行做码农

从入学天坑材料专业到退学 先自我介绍一下:我天坑材料专业,本科某211,保研到中科院,但是我真是菜的抠脚,还懒,也不喜欢科研,论文达不到毕业要求,纠结之下研三退学转码农了。 读了2…

基于51单片机的电子秤(5KG+上限报警)

电子秤5KG上限警报设计 原理图: 程序运行图: 部分程序: #include "main.h" #include "LCD1602.h" #include "HX711.h" #include "EEPROM.H" //定义变量 unsigned char KEY_NUM 0; //用来存放按…

Java并发——ThreadLocal总结

概述 并发问题,有时候,可以用ThreadLocal方式来避免。 ThreadLocal,顾名思义,就是线程自己的,独享的,就像线程栈是线程独享的一样。 本文讨论三点: 基本用法设计原理父子线程 基础用法 考虑…

JMS规范及落地产品

目录 一、JMS是什么 二、MQ中间件的其他落地产品 三、JMS的组成结构和特点 四、JMS的可靠性 (重要) (一)PERSISTENT:持久性 (二)事务 (三)Acknowledge&#xff1a…

C#,图像二值化(01)——二值化算法综述与二十三种算法目录

图像二值化,就是把彩色(先转为灰色图)最终转为黑白两色图片的计算过程。 看似极其简单,但人们研究了几十年,却始终未达到至臻境界的问题。 本文简要介绍了 图像二值化的算法原理、分类及二十三种算法的目录&#xff…

freeswitch的gateway配置方案

概述 freeswitch是一款简单好用的VOIP开源软交换平台。 在voip的网络模型中,网关是我们经常会遇到的概念。 在freeswitch中,如何配置gateway,如何使用好gateway的模型和功能。 本节简单介绍fs中gateway相关的配置方案。 环境 centos&am…

csp-202209

202209题目一:如此编码【100分】题目二:何以包邮?【100分】题目三:防疫大数据【100分】题目一:如此编码【100分】 比较简单的题,根据题意计算一遍就行 一定要关注csp题目中的提示,这个是很有用…

达梦数据IPO过会:拟募资24亿 光谷“扫地僧”冯裕才将敲钟

雷递网 雷建平 12月23日武汉达梦数据库股份有限公司(简称:“达梦数据”)日前IPO过会,准备在科创板上市。达梦数据计划募资23.51亿元。其中,3.52亿元用于集群数据库管理系统升级项目,3.43亿元用于高性能分布…

[翻译+笔记]变分自编码器:从AutoEncoder到Beta-VAE

与GAN的那篇笔记相同, 做一下笔记. 并不是全文翻译, 只翻译一部分. 原文地址: from AutoEncoder to Beta-VAE 0. 前言 自编码器是用来重构高维数据的,它利用一个有bottleneck层的神经网络。bottleneck层获取压缩的潜在编码,这样将嵌入向量以低维表示可…

Activity生命周期

Activity生命周期 1.Activity状态 1.基本状态 运行,active。位于最前台,可以和用户交互的激活状态。暂停,pause,被透明或者Dialog覆盖,此时可见失去焦点但是不允许交互。停止,stop,被Active覆盖…

spring提前加载,懒加载,bean的作用域和注入注解讲解

前言 sping知识随笔笔记;spring提前加载,懒加载,bean的作用域和注入注解讲解 这里写目录标题前言1 depends-on2 bean的作用域3 lazy-init 懒加载4 Autowrite和Resource的区别和使用1 depends-on depends-on 是提前加载,比如在实…

关于node.js版本切换nvm的命令和安装

首先是安装,第一步,搜索下方链接地址下载Releases coreybutler/nvm-windows GitHub 安装应用下载好后直接安装就可以了,或者下载一个压缩包,在下载安装之前建议先将之前下载的node版本给删除,否则会报错。 上面的操作都结束后,那么,下面就需要通过管理员的权限去查…

外汇天眼:利空美元!2023年美国经济将如履薄冰?各大银行预测整体不乐观!

高盛表示,美国经济可能避免衰退。摩根士丹利预计,美国经济在2023年只是避开了衰退,但着陆并不那么软。瑞士信贷认为,美国明年可以避免经济下滑。摩根大通警告称,明年很有可能出现经济衰退。美国银行预测2023年第一季度…

大学宿舍四位舍友皆为软测,3年后的现状~

笔者最近收到测试员好友小H的分享,临年关,他参加了一场大学舍友毕业3年后的聚会,感慨良多。 从2019年至今,这已经是毕业的第3个年头了。小H的寝室大多来自五湖四海,毕业后,能够相聚的时间也少之又少&#…

Android -- 每日一问:如何设计一个照片上传 app ?

经典回答 把自己放在一个面试官的角度,自己先实现一次这个 App ,然后自己总结一下你在这次实现中需要哪些能力、需要注意哪些事项。最后,再回过头来看,如果你是面试官,你希望面试者怎么回答才算是符合你的标准的&…

el-table 列的动态显示与隐藏

目录 业务场景 官方链接 实现效果图 使用框架 代码展示 template代码 ①、为什么要给el-table绑定【:key"reload"】? ②、为什么给每个绑定【key"Math.random()"】呢? ③、为什么列改变之后要添加【reload Math.random();…

【HarmonyOS】调测助手安装失败10内部错误

关于鸿蒙开发通过应用调测助手向watch gt 3 手表安装hap时报错。 问题背景: 鸿蒙开发,使用新建工程的helloworld 没有其他修改,生成hap包。然后通过应用调测助手向watch gt 3 手表安装hap时提示 安装失败:10.内部错误。 Sdk: a…

Shiro之授权

授权 1、角色认证 在controller层创建接口 使用shiro中的注解RequiresRoles指定能访问的角色名称 /*** 登录认证角色*/ RequiresRoles("admin") GetMapping("/userLoginRoles") ResponseBody public String userLoginRoles(){System.out.println("…