Python3爬虫(一)抓取网页的html

article/2025/9/7 14:12:21

因为代码只有几行,所以可以先贴代码:

import  urllib.request
url = r'http://douban.com'
res = urllib.request.urlopen(url)
html = res.read().decode('utf-8')
print(html)

第一行,导入 urllib库的request模块

第二行,指定要抓取的网页url,必须以http开头的

第三行,调用 urlopen()从服务器获取网页响应(respone),其返回的响应是一个实例

第四行,调用返回响应示例中的read()函数,即可以读取html,但需要进行解码,具体解码写什么,要在你要爬取的网址右键,查看源代码,


红框中的 charset= 则表示编码格式,我要爬取的网页编码为 utf-8,所以,解码我也填utf-8,如果是gbk2313,则填写的是GBK


(更为简单的方法是在程序中调用info()获取网页头部来查看编码方式:)

查看网页的头部信息以确定网页的编码方式:

import urllib.requestres = urllib.request.urlopen('http://www.163.com')
print(res.info())  #info()方法 用来获取网页头部
执行结果:


可以看出次网页的编码是 GBK。


第五行,打印就行。

但上面的写法是裸奔型写法,就是没有头部的,有一些网页你没有头部是不能访问的,会返回 403错误。



最正式的做法是仿照http的过程,在用爬虫获取网页的时候,加入头部,伪装成浏览器。

Http 其实就是 请求/响应模式,永远都是 客户端向服务端发送请求,然后服务端再返回响应。


有一个问题就是 头部改怎么加?可以打开你的浏览器,按F12,(我用的是谷歌浏览器)

F12打开开发者工具模式后,进入一个随便一个网页,开发者工具就会有东西出现


双击name栏的任意一个,在Headers 一栏会有个 User-Agent ,复制蓝色部分,蓝色部分就是头部。再把蓝色部分加入到爬虫程序中,见下面代码:

这种方式是推荐的

import urllib.requesturl = r'http://douban.com'
headers ={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
req = urllib.request.Request(url=url,headers=headers)
res = urllib.request.urlopen(req)
html = res.read().decode('utf-8')
print(html)

注意:urllib.request.Request()用于向服务端发送请求,就如 http 协议客户端想服务端发送请求

而 urllib.request.urlopen()则相当于服务器返回的响应


http://chatgpt.dhexx.cn/article/sdTEBGSv.shtml

相关文章

python3爬虫-Python3网络爬虫入门实战解析

网络爬虫简介 网络爬虫,也叫网络蜘蛛(Web?Spider)。它根据网页地址(URL)爬取网页内容,而网页地址(URL)就是我们在浏览器中输入的网站链接。 在浏览器的地址栏输入URL地址,在网页处右键单击,找到检查。(不同浏览器的叫法不同&am…

Python3爬虫概述

爬虫基础 文章目录 爬虫基础爬虫概述Session和Cookie简述1. Session2. Cookie3.关于Session 参考资料 爬虫概述 简单来说,爬虫就是从网页上提取信息并保存的自动化程序。 爬虫程序的工作: 获取网页: 爬虫需要先获取网页信息,即网页源代码进行后续分析。…

python爬虫之

使用BeaufulSoup获取指定class时,结果是将我们所输入的字符串去做模糊匹配,因此会将所有包含的class结果输出,如下图: 但我们所需要的可能是精确匹配的那一条,这个时候更换一下代码即可: web_url http://…

Python3 网络爬虫 <教程全集>

1.1 最简单的爬虫 我的老师:Jack Cui PS:我是通过 看 Jack Cui 老师的文章 学习的爬虫,也为我之后的 爬虫打开了大门。 1.1.1 URL 是什么? 在学习 爬虫之前,我们必须知道 我们 平常 所说的网址,实际上 叫…

爬虫python

一、Urllib 1.什么是互联网爬虫? 如果我们把互联网比作一张大的蜘蛛网,那一台计算机上的数据便是蜘蛛网上的一个猎物,而爬虫程序就是一只小蜘蛛,沿着蜘蛛网抓取自己想要的数据 解释1:通过一个程序,根据Ur…

手把手教你如何入门Python3 网络爬虫

很多朋友学习Python都是先从爬虫开始,其原因不外两方面: 其一Python对爬虫支持度较好,类库众多,其二语法简单,入门容易,所以两者形影相随,不离不弃。 要使用python语言做爬虫,首先需…

python3 爬虫

一.网络爬虫(Web Crawler) 1.网络爬虫:是一种按照一定的规则,自动地抓取网上信息的程序或者脚本。 2.爬虫:为了获取网上大量的我们能看的到或看不到的数据 3.基本步骤:(1)定位要爬的…

python 爬虫

Python 爬虫教程(更新中) 目录 1. 简介 2. 注意 3. xpathselenium 4. xpathscarpy(更新中) 5. icrawler 【借助更加便捷操作的pip包】 1. 简介 爬虫主要有2种方式:API(报文)-静态、模拟鼠标点击形式-动态; Xpath Scrapy(…

【python】python爬虫

爬虫基础 HTTP协议 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。 HTTP是基于TCP/IP通信协议来传递数据(HT…

Python3 网络爬虫(一):初识网络爬虫之夜探老王家(2020年最新版)

一、前言 3年前,我在 csdn 写过 Python3 网络爬虫系列教程,经过三年的积累,累计阅读量近 90W。 同时,我也在 Github 开源了所有 Python3 网络爬虫代码,累积获得 10.3k 的 star,4.1k 的 fork。 可以说&…

Python3 爬虫快速入门攻略

一、什么是网络爬虫? 1、定义:网络爬虫(Web Spider),又被称为网页蜘蛛,是一种按照一定的规则,自动地抓取网站信息的程序或者脚本。 2、简介:网络蜘蛛是一个很形象的名字。如果把互…

Python3爬虫(一):Python的入门学习以及Python网络爬虫的初步认识

Author:baiyucraft BLog: baiyucraft’s Home IDE:PyCharm 其实对于Python,一直想去学习,但一直没有足够的的时候去研究,这次趁疫情在家的时间,对于Python好好的研究研究。算是作为自己对于Py…

Python3网络爬虫(一):利用urllib进行简单的网页抓取

运行平台:Windows Python版本:Python3.x IDE:Sublime text3 转载请注明作者和出处:http://blog.csdn.net/c406495762/article/details/58716886 一直想学习Python爬虫的知识,在网上搜索了一下,大部分都是…

python3 爬虫(初试牛刀)

此文章仅供学习交流使用 在学习爬虫之前,把最近对于 VMware 的网络学习做个总结 接下来,步入正题! 分析 Robots 协议 禁止所有爬虫访问任何目录的代码: User-agent: * Disallow:/允许所有爬虫访问任何目录的代码: …

Python3爬虫详解

1概述 爬虫在Python中是个实现起来比较简单,关键在于网页的分析和内容的抓取。最近由于个人需要写了些内容,这里总结下爬虫相关的内容。 本文爬虫相关实现没有使用scrapy框架,通过urllib请求、bs4来实现。 2网络请求 网络请求部分用到urlli…

python3爬虫学习

python3爬虫学习 一、爬虫流程: ①先由urllib的request打开Url得到网页html文档 ②浏览器打开网页源代码分析元素节点 ③通过Beautiful Soup或则正则表达式提取想要的数据 ④存储数据到本地磁盘或数据库(抓取,分析,存储&…

最通俗、最详细的 Python3 网络爬虫入门指南

很多朋友学习Python都是先从爬虫开始,其原因不外两方面: 其一Python对爬虫支持度较好,类库众多,其二语法简单,入门容易,所以两者形影相随,不离不弃。 要使用python语言做爬虫,首先需…

Maven安装和配置本地仓库和阿里云镜像

maven安装配置换阿里源 1.下载maven 打开maven官网https://maven.apache.org/download.cgi,下载maven安装包,下载完成后解压到你想放的位置,不用安装 2.配置环境变量 3.配置阿里源和repository地址 打开刚才的解压文件conf文件夹下的setting.…

阿里云云效Maven仓库

一、Maven仓库概要 私服的目的:我们有一些自己的公用包,不想拉取工程编译,直接使用已经上传到私服的Jar包,在需要使用的项目工程直接引用使用,加速开发效率和编译效率。 阿里云仓库地址: 公用主仓库&#…

阿里云maven仓库的使用详解以及报错解决方法

仓库介绍 阿里云Maven中央仓库为 阿里云云效 提供的公共代理仓库,帮助研发人员提高研发生产效率,使用阿里云Maven中央仓库作为下载源,速度更快更稳定。阿里云云效是企业级一站式 DevOps 平台,覆盖产品从需求到运营的研发全生命周…