python抓取简单网页_【Python3 爬虫】01_简单页面抓取
运行平台:Winodows 10
Python版本:Python 3.4.2
IDE:Sublime text3
网络爬虫
网络爬虫,也叫网络蜘蛛(Web Spider),如果把互联网比喻成一个蜘蛛网,Spider就是一只在网上爬来爬去的蜘蛛。网络爬虫就是根据网页的地址来寻找网页的,也就是URL。举一个简单的例子,我们在浏览器的地址栏中输入的字符串就是URL,例如:https://www.baidu.com/
URL就是统一资源定位符(Uniform Resource Locator),遵守以下语法规则:
scheme://host.domain:port/path/filename
解释:
scheme - 定义因特网服务的类型。最常见的类型是 http
host - 定义域主机(http 的默认主机是 www)
domain - 定义因特网域名,比如 baidu.com
:port - 定义主机上的端口号(http 的默认端口号是 80)
path - 定义服务器上的路径(如果省略,则文档必须位于网站的根目录中)。
filename - 定义文档/资源的名称
第一个爬虫
爬虫例子
#-*- coding:utf-8 -*-
"""
Author :OLIVER
Date :2018-03-22
Describe:简单爬虫
"""
from urllib import request
if __name__=="__main__":
response = request.urlopen("http://www.163.com/")
html = response.read()
print(html)
urllib使用使用request.urlopen()打开和读取URLs信息,返回的对象response如同一个文本对象,我们可以调用read(),进行读取。再通过print(),将读到的信息打印出来。
运行程序ctrl+B,可以在Sublime中查看运行结果,如下:
这些信息就是浏览器接受到的信息,只不过我们在看浏览器内容的时候,浏览器对这些内容进行了转换,让我们看着更舒服
或许你从上面可以看出,虽然我们已经成功获取了信息,但是这些信息都是二进制的,看起来很不方便,那么我们如何处理呢?
我们可以通过decode()命令将网页的信息进行解码,并显示出来
首先,我们查看网页的源码,查看原本网页编码格式
我们看到是GBK,那接下来我们开始转码
转码后,我们看到得到的结果跟我们查看源码的结果是一致的
自动获取编码格式
获取有人觉得上述获取编码格式的方法太麻烦了,那么如何自动获取编码格式呢?
使用chardet类库即可
也可以直接在DOS窗口输入命令在线安装
自动获取编码格式代码示例
from urllib import request
import chardet
if __name__=="__main__":
response = request.urlopen("http://www.163.com/")
html = response.read()
charset = chardet.detect(html)
print(charset)
运行程序,输结果:
同时呢,加入我们现在有很多网页,那么我们不可能一一去看,我们在这就可以想到把这个第三方库封装为一个函数,然后遍历多个网页即可
下面是我封装遍历的一个例子:
#-*- coding:UTF-8 -*-
from urllib importrequestimportchardetdefauto_GetCharset(url):
response=request.urlopen(url)
html=response.read()
charset=chardet.detect(html)
value= charset['encoding']returnvalue"""定义一个列表,然后依次查看列表元素的编码格式"""Web_list= ["http://www.baidu.com/","http://www.163.com/","https://www.jd.com/","https://www.youku.com/"]for url inWeb_list:
charset=auto_GetCharset(url)print(url,charset)
运行结果
盲点
程序中我新增了__name__=="__main__"这段代码
解释:
__name__ 是当前模块名,当模块被直接运行时模块名为 __main__ 。这句话的意思就是,当模块被直接运行时,以下代码块将被运行,当模块是被导入时,代码块不被运行
例如:
我们现在有文件const.py
另外还存在一个计算和sm.py的文件
现在他导入模块const,并且也运行了const中的print语句了,我们在const中添加__name__=="__main__"
再次运行sm.py
已经不打印了
python抓取简单网页_【Python3 爬虫】01_简单页面抓取相关推荐
- Python3爬虫(一)抓取网页的html
因为代码只有几行,所以可以先贴代码: import urllib.request url = r'http://douban.com' res = urllib.request.urlopen(url ...
- python3爬虫之二:爬取网页图片
Python3抓取网页图片 爬取的路径:URL = https://pixabay.com/zh/editors_choice/?media_type=illustration&pagi=3 ...
- python爬取豆瓣电影top250_【Python3爬虫教程】Scrapy爬取豆瓣电影TOP250
今天要实现的就是使用是scrapy爬取豆瓣电影TOP250榜单上的电影信息. 步骤如下: 一.爬取单页信息 首先是建立一个scrapy项目,在文件夹中按住shift然后点击鼠标右键,选择在此处打开命令 ...
- scrapy爬取动态网页_动漫爱好者必会的Scrapy爬虫框架之———— 多页爬取图片的信息...
ok, 接下来我们要将怎样多页爬取图片的信息,以及如何下载图片. 知识点涉及到: 自动的翻页爬取 多个parse 之间的request 传递 构建图片爬取的通道 さあ!始めようぜ! 首先我们要爬取的网 ...
- 爬虫python编程与cvi编程_与爬虫无关,简单的用python进行科学运算
1.算积分 1.1一重积分 例:如计算半圆的面积,积分公式: # -*- coding:utf-8 -*- from scipy import integrate#输入scipy的integrate函 ...
- python自动爬取更新电影网站_Python爬虫之—微信实时爬取电影咨询
本文将介绍如何使用爬虫在微信对话中实现实时的电影咨询爬取功能,希望和大家一起来分享" 1. 撩妹起源 俗话说的好:少壮不撩妹,长大徒伤悲啊! 说的很对,但是在这个撩妹的时代,要想成功把到妹, ...
- python 爬取财经新闻_金融财经新闻的文本爬取
大家一定还记得<金融数据的获取--一个爬虫的简单例子>这篇文章中介绍的爬虫思想和方法吧.看过之后,大多数人都会有这样的感受,虽然爬虫的原理比较简单,但是正则表达式却很难写.对于每个页面内容 ...
- python爬去百度百科词条_Python爬虫入门学习实践——爬取小说
本学期开始接触python,python是一种面向对象的.解释型的.通用的.开源的脚本编程语言,我觉得python最大的优点就是简单易用,学习起来比较上手,对代码格式的要求没有那么严格,这种风格使得我 ...
- python爬虫二级子页面爬取
python爬虫二级页面爬取 文章目录 python爬虫二级页面爬取 前言 一.流程 二.操作部分 1.请求头设置 2.第一级页面爬取 3.二级页面内容爬取 4.运行结果 前言 推荐一个爬虫的小玩意 ...
- Python3爬虫-04-模拟登录爬取企信宝200页数据
''' 批量抓取企信宝页面(前200页吧) ''' #导入需要的库 import urllib.request,socket,re,sys,os import ssl import fileinput ...
最新文章
- Static 作用探讨
- kettle mysql 配置_Kettle数据库配置抽离
- 使用原生JS实现简单的ajax
- 3、MySQL二进制日志(Binary Log)详解
- mybatis知识点
- 通过已有SQL语句,生成数据库模型PDM
- 20141126-解决联网问题-笔记
- django后台多页面分页逻辑python代码
- IT、OT融合趋势下,西门子举办“第一届西门子工业边缘生态大会”
- 三菱plc 毕设_PLC漏型和源型输入有何不同?
- py加PHP,浅谈PHP运行Python脚本的方法
- Android开发系列(十一) QQ登陆界面——Android控件使用实例
- Javassist简介
- Mysql之DDL(数据定义语言)
- 若为自由故——重返 Linux 世界
- 新特效火爆抖音!各路神仙齐唱《蚂蚁呀嘿》,网友:短短几秒需一生来治愈
- 【Visual C++】游戏开发笔记四十 浅墨DirectX教程之八 绘制真实质感的三维世界 光照与材质专场
- 分类网络(一)VGG
- ksps什么单位_[转载]采样频率Hz 采样率KSPS或MSPS,两种单位的换算关系
- 解决Excel 2010打开两个以上文件时,总只显示一个窗口
热门文章
- 示波器触发模式及其使用
- CAMB, CosmoMC的安装和使用
- 基于haproxy+keepalive+varnish实现lnmp企业级架构
- SPF Tarjan算法求无向图割点(关节点)入门题
- Alt + sysrq + REISUB doesn't reboot my laptop
- html Frame、Iframe、Frameset 的区别 详细出处参考:http://www.jb51.net/web/22785.html
- Android应用程序获得root权限
- Android关于绘图中Shader 的效果(中级)
- 虚拟机用户配置root权限
- word文档中添加mathtype加载项