Python入门--13--爬虫一
URL的格式一般为(带方括号的是可选的):
protocol://hostname[:port]/path/[;parameters][?query]#fragment
URL由三部分组成:
第一部分是协议:http https ftp file ed2k
第二部分是存放资源的放武器的域名系统或IP地址(有时候要包含端口号)
各种传输协议都有默认的端口号,http的默认端口号就是80
第三部分是资源的具体地址,如目录或文件名等
python3.0版本之后就把urllib和urllib2合并了,变为一个urllib包
下面先用urllib.request写个小程序
import urllib.request
wangye = urllib.request.urlopen('http://www.baidu.com')
html=wangye.read()
print (html)
##输出的全是乱码是不是 ,因为他是二进制的格式
import urllib.request
wangye = urllib.request.urlopen('http://www.baidu.com')
html=wangye.read()
html=html.decode('utf-8')
print (html)
##这就转化为你在浏览器的网页里面按F12的效果,是他们的源代码
一、抓取一只猫
import urllib.request
wangye=urllib.request.urlopen('http://placekitten.com/g/500/500')
cat_img = wangye.read()
with open('cat_500_600'+'.jpg','wb') as f:
f.write(cat_img)
#reques有两种用法 一种是'urlopen'后面加上网址,另外一种是urllib.request.Request加上网址
import urllib.request
pro_wangye=urllib.request.Request('http://placekitten.com/g/500/500')
wangye=urllib.request.open(pro_wangye)
cat_img = wangye.read()
with open('cat_500_600'+'.jpg','wb') as f:
f.write(cat_img)
所以直接用urlopen就好
二、一些函数
wangye.geturl() #输出的是http://placekitten.com/g/500/500
print(wangye.info()) #输出一堆网络的属性什么的
wangye.getcode() #如果输出200说明服务器状态没问题,正常相应
三、在编一个小程序:有道翻译
注意:
1、这个urlopen有个参数data,如果其被赋值,则函数就会post,来取代get
2、data的格式必须是特定的,需要使用:urllib.parse.urlencode()进行一下编码,编译成url的格式
而且这个urllib.parse是一个模块的 需要载入
四、一些知识点
remote address:服务器ip地址+打开的端口号
request url:打开的地址
status code:服务器的状态,200是正常,404是页面不见了
request header:客户端、浏览器的意思 #一般通过这个里面的users-agent来判断是代码访问还是人的访问
使用: 1、req=urllib.request.Request(url,data,header) #提前写好header,这是个字典
或者使用:2、req=urllib.request.Request(url,data)
req.add_header('UserAgent','Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36')
JSON:这是一种轻量级的数据交换格式,说白了就是这里就是字符串把Python的数据结构封装起来,便于储存和使用
HTTP有好几种方法(GET、POST、PUT、HEAD、DELETE、OPTIONS、CONNECT),请问如何知道python使用的哪一种:
答:使用get_method()方法获取request对象具体使用那种方法访问服务器,当request的Data参数被赋值的时候,get_method()返回的'POST',否则返回'GET'
Python入门--13--爬虫一的更多相关文章
- python入门13 集合set
set集合与数学中的集合同一个概念,是无序不重复元素组成的. #coding:utf-8 #/usr/bin/python """ 2018-11-10 dinghanh ...
- Python爬虫从入门到进阶(1)之Python概述及爬虫入门
一.Python 概述 1.计算机语言概述 (1).语言:交流的工具,沟通的媒介 (2).计算机语言:人跟计算机交流的工具 (3).Python是计算机语言的一种 2.Python编程语言 代码:人类 ...
- Python基础及爬虫入门
**写在前面**我们在学习任何一门技术的时候,往往都会看很多技术博客,很多程序员也会写自己的技术博客.但是我想写的这些不是纯技术博客,我暂时也没有这个能力写出 Python 或者爬虫相关的技术博客来. ...
- 大爽Python入门教程 1-3 简单的循环与判断
大爽Python入门公开课教案 点击查看教程总目录 这里只初步认识下循环和判断,以便于我们去实现一些简单的计算. 循环和判断的详细知识和细节,我们将在后面的章节(大概是第三章)展开阐述. 1 初步了解 ...
- python 入门教程
转载自:http://www.crifan.com/files/doc/docbook/python_beginner_tutorial/release/html/python_beginner_tu ...
- Python入门:如何使用第三方库?
这是关于Python的第13篇文章,也是关于<编程小白的第1本Python入门书>内容的最后一篇,主要介绍下如何使用第三方库. 1. 第三方库 Python相当于一个手机,第三方库相当于手 ...
- Python 入门之Python简介
Python 入门之Python简介 1.Python简介: (1) Python的出生: python的创始人为吉多·范罗苏姆(Guido van Rossum)(中文名字:龟叔).1989年的 ...
- Python 入门【一】Python 初识及学习资料
Python 初识及学习路线: CodeCademy Python 在线教学: 廖雪峰 Python 2.7 教程: 廖雪峰 Python 3.0 教程: Python 官方文档(2.7~3.7:英文 ...
- 用python写网路爬虫 PDF高清完整版免费下载 Python基础教程免费电子书 python入门书籍免费下载
<用python写网路爬虫PDF免费下载>PDF书籍下载 内容简介 作为一种便捷地收集网上信息并从中抽取出可用信息的方式,网络爬虫技术变得越来越有用.使用Python这样的简单编程语言,你 ...
- 基于股票大数据分析的Python入门实战(视频教学版)的精彩插图汇总
在我写的这本书,<基于股票大数据分析的Python入门实战(视频教学版)>里,用能吸引人的股票案例,带领大家入门Python的语法,数据分析和机器学习. 京东链接是这个:https://i ...
随机推荐
- WPF知识点全攻略03- XAML
XAML 是一种声明性标记语言,XAML 是一种基于 XML 并对 XML 结构规则进行了扩展. XAML特点: 定义应用程序的界面元素 显示的声明WPF资源(样式.模板.动画等) 可扩展性(自定义U ...
- CAD交互绘制云线批注(网页版)
js中实现代码说明: 动态拖放时的绘制事件: function DoDynWorldDrawFun(dX,dY,pWorldDraw,pData) { //自定义实体的GUID标识符 var sGui ...
- CPP-基础:char、BYTE、byte
一,C++语言的内建类型中没“BYTE”这么个类型.BYTE是WINDOWS Platform SDK中windef.h里面定义的:typedef unsigned char BYTE; 二,char ...
- CeontOS6.5安装php环境
港湾云主机重装操作系统之后xshell无法连接:重启ssh:# service sshd restart -bash: vim: command not found:输入 rpm -qa|grep v ...
- |chromosomal walk |zoo blot|鉴定疾病gene|
5.6基于外显子的保守性鉴定真核生物编码蛋白质的基因 鉴定功能性基因的流程是:1.连锁分析找到该基因的染色体的特定区域:2.在这段序列中选择一条短序列,寻找满足两个条件的基因(条件一:因为功能性基因是 ...
- CVE-2010-3333
环境 windows xp sp3 office 2003 sp0 windbg ollydbg vmware 12.0 0x00 RTF格式 RTF是Rich TextFormat的缩写,意即富文本 ...
- Bootstrap历练实例:按钮组大小
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...
- c++中的结构体:声明 定义 初始化
什么是结构体? 之前的学习中我们知道了数组是一个容器,而且是存放固定大小数据的容器,而且存放的元素的数据类型必须要一致. 比如数据库中有这样的一条记录学号 性别 年龄 成绩 地址应该怎样存放 结构体: ...
- 新浪oAuth授权
首先要拥有一个微博账号 第一步 成为新浪开发者 1.登录微博开发者界面 open.weibo.com 2. 点击登录 点击移动应用,创建应用 3.需要进行开发者认证,填写个人信息及邮箱认证,等 ...
- Luogu P2664 树上游戏 dfs+树上统计
题目: P2664 树上游戏 分析: 本来是练习点分治的时候看到了这道题.无意中发现题解中有一种方法可以O(N)解决这道题,就去膜拜了一下. 这个方法是,假如对于某一种颜色,将所有这种颜色的点全部删去 ...