本文以爬取百度首页为示例来学习,python版本为python3.6.7,完整代码会在文章末附上

本次学习所用到的python框架:
urllib.request 本次学习所用到的函数:
urllib.request.urlopen():发送http的get请求
.read():读取抓到的内容
.decode("utf-8"):将获取的betys格式数据转换为string格式数据

1.发送http的get请求使用的函数urllib.request.urlopen() ,其返回内容是所请求的url的网页源代码 可以将返回的内容赋给另外一个key

例如 response = urllib.request.urlopen(url)

代码执行结果:

好像是存在内存里,这应该展示的是一个内存地址。

 
 2.我们需要将内容读出来就用到了有一个函数.read()
 
data = response.read() `将response的内容读出来赋值给data

代码执行结果:获取的数据类型为bytes,没有可读性哈

3.需要进行转换将data转换成字符串类型,用到函数.decode("utf-8")

str_data = data.decode("utf-8")

代码执行结果:【ps:将上面的https改为http】不截图了这里就能打印出url所对应的网页源代码了

 4.接下来是数据持久化的问题【固定格式记住就行了】

代码运行会生成一个baidu.html保存的是上面搜抓取的内容。

可以本地运行会[做运维的小年轻]打开一个浏览器页面:
5.那我们在爬虫的时候也会有需求,将字符串转换为你bytes格式,这就需要用到函数.encode

代码运行结果:

 
Python爬取到的数据类型一般有两种:str 、bytes
如果是爬取回来的是bytes类型,但是需要写入的是str类型用到的就是第4条的.decode(utf-8)
如果爬取回来的是str类型,但是需要写入的是bytes类型用到的就是第5条对的.encode(utf-8)
 
 
完整代码:

# -*- coding:utf-8 -*-
import urllib.request def load_data():
url = "http://www.baidu.com/" #发送http的get请求的函数 urllib.request.urlopen() 其返回内容是所请求url的网页源代码
#将返回的内容赋值给response
response = urllib.request.urlopen(url)
#print(response)
#读取内容 运行之后发现返回数据类型为bytes类型[做运维的小年轻]
data = response.read()
#print(data)
# 将获取的数据类型为bytes的数据data 转换成字符串类型
str_data = data.decode("utf-8")
#print(str_data)
#数据持久化,即写入文件
with open("baidu.html","w",encoding="utf-8")as f:
f.write(str_data)
load_data()

Python爬虫之『urlopen』的更多相关文章

  1. python爬虫之『入门基础』

    HTTP请求 1.首先需要了解一下http请求,当用户在地址栏中输入网址,发送网络请求的过程是什么? 可以参考我之前学习的时候转载的一篇文章一次完整的HTTP事务过程–超详细 2.还需要了解一下htt ...

  2. 一个简单的开源PHP爬虫框架『Phpfetcher』

    这篇文章首发在吹水小镇:http://blog.reetsee.com/archives/366 要在手机或者电脑看到更好的图片或代码欢迎到博文原地址.也欢迎到博文原地址批评指正. 转载请注明: 吹水 ...

  3. Python爬虫1-使用urlopen

    GitHub代码练习地址:https://github.com/Neo-ML/PythonPractice/blob/master/SpiderPrac01_urlopen.py 爬虫简介- 爬虫定义 ...

  4. Python爬虫教程-02-使用urlopen

    Spider-02-使用urlopen 做一个最简单的python爬虫,使用爬虫爬取:智联招聘某招聘信息的DOM urllib 包含模块 - urllib.request:打开和读取urls - ur ...

  5. 『Python题库 - 填空题』151道Python笔试填空题

    『Python题库 - 填空题』Python笔试填空题 part 1. Python语言概述和Python开发环境配置 part 2. Python语言基本语法元素(变量,基本数据类型, 基础运算) ...

  6. 『Python题库 - 简答题』 Python中的基本概念 (121道)

    ## 『Python题库 - 简答题』 Python中的基本概念 1. Python和Java.PHP.C.C#.C++等其他语言的对比? 2. 简述解释型和编译型编程语言? 3. 代码中要修改不可变 ...

  7. 『009』Python

    『004』索引-Language Python 准备更新中

  8. python爬虫成长之路(一):抓取证券之星的股票数据

    获取数据是数据分析中必不可少的一部分,而网络爬虫是是获取数据的一个重要渠道之一.鉴于此,我拾起了Python这把利器,开启了网络爬虫之路. 本篇使用的版本为python3.5,意在抓取证券之星上当天所 ...

  9. python爬虫学习(6) —— 神器 Requests

    Requests 是使用 Apache2 Licensed 许可证的 HTTP 库.用 Python 编写,真正的为人类着想. Python 标准库中的 urllib2 模块提供了你所需要的大多数 H ...

随机推荐

  1. Python多版本情况下四种快速进入交互式命令行的操作技巧

    因为工作需求或者学习需要等原因,部分小伙伴的电脑中同时安装了Python2和Python3,相信在Python多版本的切换中常常会遇到Python傻傻分不清楚的情况,今天小编整理了四个操作技巧,以帮助 ...

  2. bzoj1457: 棋盘游戏 SG函数 Nim

    Code: #include<cstdio> #include<cstring> using namespace std; #define maxn 1003 #define ...

  3. POJ-2785 Values whose Sum is 0 Hash表

    题目链接:https://cn.vjudge.net/problem/POJ-2785 题意 给出四组数,每组有n个数 现从每组数中取一个数作为a,b,c,d 问有几组这样的a+b+c+d=0 思路 ...

  4. 20180929 北京大学 人工智能实践:Tensorflow笔记07

    (完)

  5. Win10 + YOLOv3 环境配置,编译,实现目标检测----How to compile YOLOv3 on Windows

    其他比较好的参考链接: 环境配置: 环境配置的最终图片列表:https://blog.csdn.net/shanglianlm/article/details/80322718 视频讲解YOLOv1: ...

  6. Python组织文件 实践:拷贝某种类型的所有文件

    #! python3 #chapter09-test01- 遍历目录树,查找特定扩展名的文件不论这些文件的位置在哪里,都将他们 #拷贝到一个新的文件夹中 import os,shutil,pprint ...

  7. BZOJ——T 1612: [Usaco2008 Jan]Cow Contest奶牛的比赛

    http://www.lydsy.com/JudgeOnline/problem.php?id=1612 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1 ...

  8. 用C3P0建立server与数据库的连接

    1:在MyEclipse建立 Web Service Project 2:在project中建立servlets包 3:在包中新建Servlet文件(採用new Servlet方法可省去配置web.x ...

  9. 异步Ajax

    Ajax异步刷新应用在Web开发中经常用到,在过去WebForm中通常是使用JQuery和一般处理程序或者aspx页面来实现: 在MVC中,虽然依然可以使用一般处理程序,但是一般还是通过在Contro ...

  10. 初学PHP&MySQL 2014-05-31 12:40 92人阅读 评论(0) 收藏

    PHP echo  print 都能输出文本 date(format,timestamp)可以格式化时间戳 mktime()可以返回指定日期的时间戳 include 'filename'或者 requ ...