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--爬虫一的更多相关文章

  1. python入门13 集合set

    set集合与数学中的集合同一个概念,是无序不重复元素组成的. #coding:utf-8 #/usr/bin/python """ 2018-11-10 dinghanh ...

  2. Python爬虫从入门到进阶(1)之Python概述及爬虫入门

    一.Python 概述 1.计算机语言概述 (1).语言:交流的工具,沟通的媒介 (2).计算机语言:人跟计算机交流的工具 (3).Python是计算机语言的一种 2.Python编程语言 代码:人类 ...

  3. Python基础及爬虫入门

    **写在前面**我们在学习任何一门技术的时候,往往都会看很多技术博客,很多程序员也会写自己的技术博客.但是我想写的这些不是纯技术博客,我暂时也没有这个能力写出 Python 或者爬虫相关的技术博客来. ...

  4. 大爽Python入门教程 1-3 简单的循环与判断

    大爽Python入门公开课教案 点击查看教程总目录 这里只初步认识下循环和判断,以便于我们去实现一些简单的计算. 循环和判断的详细知识和细节,我们将在后面的章节(大概是第三章)展开阐述. 1 初步了解 ...

  5. python 入门教程

    转载自:http://www.crifan.com/files/doc/docbook/python_beginner_tutorial/release/html/python_beginner_tu ...

  6. Python入门:如何使用第三方库?

    这是关于Python的第13篇文章,也是关于<编程小白的第1本Python入门书>内容的最后一篇,主要介绍下如何使用第三方库. 1. 第三方库 Python相当于一个手机,第三方库相当于手 ...

  7. Python 入门之Python简介

    Python 入门之Python简介 1.Python简介: (1) Python的出生: ​ python的创始人为吉多·范罗苏姆(Guido van Rossum)(中文名字:龟叔).1989年的 ...

  8. Python 入门【一】Python 初识及学习资料

    Python 初识及学习路线: CodeCademy Python 在线教学: 廖雪峰 Python 2.7 教程: 廖雪峰 Python 3.0 教程: Python 官方文档(2.7~3.7:英文 ...

  9. 用python写网路爬虫 PDF高清完整版免费下载 Python基础教程免费电子书 python入门书籍免费下载

    <用python写网路爬虫PDF免费下载>PDF书籍下载 内容简介 作为一种便捷地收集网上信息并从中抽取出可用信息的方式,网络爬虫技术变得越来越有用.使用Python这样的简单编程语言,你 ...

  10. 基于股票大数据分析的Python入门实战(视频教学版)的精彩插图汇总

    在我写的这本书,<基于股票大数据分析的Python入门实战(视频教学版)>里,用能吸引人的股票案例,带领大家入门Python的语法,数据分析和机器学习. 京东链接是这个:https://i ...

随机推荐

  1. 微擎框架中receive.php代码分析

  2. python之for (循环)

    格式: for 循环 for i in s: print(i) # for 关键字 # i 变量 # in 关键字 # s 可迭代对象 int - bool pass和- # for a in &qu ...

  3. js parse_url 引发的

    原文链接:https://www.w3.org/TR/2011/WD-html5-20110525/origin-0.html 这里只是做下记录: 5.3 Origin — HTML5 li, dd ...

  4. 官方webupload上传多个文件或者图片的方法

    文件上传 页面代码: <!--引入CSS--> <link rel="stylesheet" type="text/css" href=&qu ...

  5. shell脚本,alias别名命令用法。

    [root@localhost ~]# alias alias cp='cp -i' alias mv='mv -i' alias rm='rm -i' [root@localhost ~]# [ro ...

  6. IP数据包的校验和算法

    1.算法思路: IP/ICMP/IGMP/TCP/UDP等协议的校验和算法都是相同的,算法如下: 在发送数据时,为了计算IP数据包的校验和.应该按如下步骤: (1)把IP数据包的校验和字段置为0: ( ...

  7. ECMAScript5 [].reduce()

    ECMAScript 5 的2个归并数组的方法,reduce() reduceRight() 两个方法都会迭代数组的所有项,然后构建一个最终返回的值. 两个参数:   1.函数,一个在每一项上调用的函 ...

  8. minGw64编译Qt时遇到too many sections问题

    minGw64编译Qt时遇到too many sections问题: 修改\Src\qtbase\mkspecs\win32-g++\qmake.conf中 QMAKE_CFLAGS         ...

  9. ubuntu命令行卸载并清理软件

    卸载软件,可以使用下面这两种方式之一: sudo apt-get remove --purge [software name] sudo apt-get autoremove --purge [sof ...

  10. laravel 设计思想简单了解

    服务容器 laravel框架中 服务容器是整个系统功能调度配置的核心,在系统运行过程中动态的为系统提供需要的服务 从而实现了解耦 控制反转(IOC) 控制反转是一种设计模式 主要解决了系统组件之间的相 ...