首页 > 其他分享 >2024/2/2

2024/2/2

时间:2024-02-27 16:16:07浏览次数:16  
标签:请求 text 爬虫 2024 header res print

什么是爬虫?
爬虫就是自动获取网页内容的程序,例如搜索引擎,Google,Baidu 等,每天都运行着庞大的爬虫系统,从全世界的网站中爬虫数据,供用户检索时使用。

爬虫流程
其实把网络爬虫抽象开来看,它无外乎包含如下几个步骤

模拟请求网页。模拟浏览器,打开目标网站。
获取数据。打开网站之后,就可以自动化的获取我们所需要的网站数据。
保存数据。拿到数据之后,需要持久化到本地文件或者数据库等存储设备中。

Requests 使用
Requests 库是 Python 中发起 HTTP 请求的库,使用非常方便简单。

模拟发送 HTTP 请求

发送 GET 请求

当我们用浏览器打开豆瓣首页时,其实发送的最原始的请求就是 GET 请求

import requests
res = requests.get('http://www.douban.com')
print(res)
print(type(res))
>>>
<Response [200]>
<class 'requests.models.Response'>

如果我们要获取网站返回的数据,可以使用 text 或者 content 属性来获取

text:是以字符串的形式返回数据

content:是以二进制的方式返回数据

print(type(res.text))
print(res.text)
>>>
<class 'str'> <!DOCTYPE HTML>
<html lang="zh-cmn-Hans" class="">
<head>
<meta charset="UTF-8">
<meta name="google-site-verification" content="ok0wCgT20tBBgo9_zat2iAcimtN4Ftf5ccsh092Xeyw" />
<meta name="description" content="提供图书、电影、音乐唱片的推荐、评论和价格比较,以及城市独特的文化生活。">
<meta name="keywords" content="豆瓣,广播,登陆豆瓣">.....
发送 POST 请求

对于 POST 请求,一般就是提交一个表单

r = requests.post('http://www.xxxx.com', data={"key": "value"})

data 当中,就是需要传递的表单信息,是一个字典类型的数据。

header 增强

对于有些网站,会拒绝掉没有携带 header 的请求的,所以需要做一些 header 增强。比如:UA,Cookie,host 等等信息。

header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36",
"Cookie": "your cookie"}

标签:请求,text,爬虫,2024,header,res,print
From: https://www.cnblogs.com/lklyouhouhou/p/18037056

相关文章

  • 2024/2/3
    Scala语言特点Scala是一门以Java虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言(静态语言需要提前编译的如:Java、C、C++等,动态语言如:JS)。1)Scala是一门多范式的编程语言,Scala支持面向对象和函数式编程。(多范式,就是多种编程方法的意思。......
  • USACO 2024 Season
    2024JANSilverCowmpetency线段树可以有效减少思维含量。建议评分:蓝。设\[x=\max_{k=1}^ia_k\]\[y=\max_{k=i+1}^{j-1}a_k\]则FJ的限制\((i,j)\)可以表示为\(x\gey\)并且\(x<a_j\)。将所有限制按\(i\)从小到大排序后,对每个限制\((i,j)\)执行以下流程。......
  • 《产品需求分析与管理》(深圳2024年3月22-23日)
    【课程背景】客户的需求不断变化,如何快速高效地推出满足客户需求、具有差异化优势和竞争优势的产品,并最终获得市场的成功,是企业的核心问题。目前国内许多科技型企业在产品需求管理方面存在如下问题:产品开发没有实现市场驱动,是“闭门造车”,关注技术而不关心客户;产品开发出来后......
  • 2024牛客寒假算法基础集训营1(补题)
    目录ABCDEFGHIKLAn的范围很小暴力直接\(O(n^3)\)直接做就行。我还傻的统计了一下前后缀,不过怎么写都行这道题。#include<bits/stdc++.h>#defineintlonglong#definerep(i,a,b)for(inti=(a);i<=(b);++i)#definefep(i,a,b)for(inti=(a);i>=(b);--i)#d......
  • 2024-02-27-物联网系统编程(7- 共享内存)
    7.共享内存7.1共享内存概述​共享内存允许两个或者多个进程共享给定的区域共享内存的特点共享内存是进程间共享数据的一种最快的方法;一个进程向共享的内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。使用共享内存要注意的是多个进程之......
  • 20240219
    State的使用在Compose中,我们可以使用State来管理数据,State是一个可以被观察的数据,当数据发生变化时,State会通知所有的观察者。我们可以使用State来管理UI的状态,比如显示和隐藏组件、改变组件的样式等。什么时候使用State当我们需要管理UI的状态时,我们可以使用State。比如,当我们......
  • 20240218
    记账本App主页页面的绘制记账本App的主页界面绘制@OptIn(ExperimentalMaterial3Api::class)@ComposablefunExpenseTrackerApp(appViewModel:ExpenseTrackerViewModel=viewModel()){valappUiStatebyappViewModel.uiState.collectAsState()Box(modifie......
  • 【2024-02-18】连岳摘抄
    23:59在即将远行和改变生活方式的时刻,善于反省的人总怀着一种严肃的心情。每逢这样的时刻,人们通常是检查过去和计划未来。                                                ......
  • 【2024-02-17】连岳摘抄
    23:59尽管如此,还要坚持,希望就像盐巴一样,没有营养,但它给面包增添了味道。                                                 ——若泽·萨拉马戈强者可以制定规则,强者......
  • 2024-02-27-物联网系统编程(6-消息队列)
    6.消息队列6.1IPC对象​除了最原始的进程间通信方式信号、无名管道和有名管道外,还有三种进程间通信方式,这三种方式称之为IPC对象:消息队列、共享内存、信号灯集。​IPC对象也是在内核空间开辟区域,每一种IPC对象创建好之后都会将其设置为全局,并且会给其分配一......