Python爬虫连载1-urllib.request和chardet包使用方式

一、参考资料

1.《Python网络数据采集》图灵工业出版社

2.《精通Python爬虫框架Scrapy》人民邮电出版社

3.[Scrapy官方教程](http://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/tutorial.html)

4.[Python3网络爬虫](http://blog.csdn.net/c406495762/article/details/72858983

二、前提知识

url、http协议、web前端:html\CSS\JS、ajax、re、Xpath、xml

三、基础知识

1.爬虫简介

爬虫定义:网络爬虫(又被称为网页蜘蛛、网络机器人、在FOAF社区中,更经常的称为网页追逐者)是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本?。两外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者如?蠕虫。

2.两大特征

(1)能按作者要求下载数据或者内容

(2)能自动在网络上流窜

3.三大步骤

(1)?下载网页;

(2)提取正确的信息

(3)根据一定规则自动跳到另外的网页上执行上两步内容

4.爬虫分类

(1)通用爬虫

(2)专用爬虫

5.Python网络包简介

Python2:urllib\urllib2\urllib3\httplib\httplib2\requests

Python3.x:urllib\urllib3\httplib2\requests

其中python2中urllib和urllib2配合使用,或者requests

Python3就是使用urllib.requests

6.urllib

包含模块

urllib.requests:打开和读取urls

urllib.error:包含urllib.requests产生的常见的错误,使用try捕捉

urllib.parse:包含即时url的方法

urllib.robotparse:解析roobs.txt文件


from urllib import request

"""

使用urllib,request请求一个网页内容,并把内容打印出来

"""

if __name__ == "__main__":

    url = "https://mp.weixin.qq.com/cgi-bin/home?t=home/index&lang=zh_CN&token=984602018"

    #打开相应的url并把相应页面作为返回

    rsp = request.urlopen(url)

    #返回结果读取出来

    html = rsp.read()

    print(type(html))##bytes类型

    html = html.decode()

    print(html)

7.网页编码解析方式chardet包的使用


from urllib import request

import chardet

"""

使用urllib,request请求一个网页内容,并把内容打印出来

"""

if __name__ == "__main__":

    url = "https://mp.weixin.qq.com/cgi-bin/home?t=home/index&lang=zh_CN&token=984602018"

    #打开相应的url并把相应页面作为返回

    rsp = request.urlopen(url)

    #返回结果读取出来

    html = rsp.read()

    print(type(html))##bytes类型

    print("=========================")

?

    cs = chardet.detect(html)#利用chardet来检测这个网页使用的是什么编码方式

    print(cs)

    print(type(cs))

    #使用get方法是为了避免如果取不到值报错,程序就崩溃了

    html = html.decode(cs.get("encoding","utf-8"))#取cs字典中encoding属性,如果取不到,那么就使用utf-8

四、源码

Reptile1_SimpleAnalysis.py

https://github.com/ruigege66/PythonReptile/blob/master/Reptile1_SimpleAnalysis.py?

2.CSDN:https://blog.csdn.net/weixin_44630050(心悦君兮君不知-睿)

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

原文地址:https://www.cnblogs.com/ruigege0000/p/12169312.html

时间: 2024-10-10 17:14:08

Python爬虫连载1-urllib.request和chardet包使用方式的相关文章

python爬虫:使用urllib.request和BeautifulSoup抓取新浪新闻标题、链接和主要内容

案例一 抓取对象: 新浪国内新闻(http://news.sina.com.cn/china/),该列表中的标题名称.时间.链接. 完整代码: from bs4 import BeautifulSoup import requests url = 'http://news.sina.com.cn/china/' web_data = requests.get(url) web_data.encoding = 'utf-8' soup = BeautifulSoup(web_data.text,'

python爬虫实例(urllib&BeautifulSoup)

python 2.7.6 urllib:发送报文并得到response BeautifulSoup:解析报文的body(html) #encoding=UTF-8 from bs4 import BeautifulSoup from urllib import urlopen import urllib list_no_results=[]#没查到的银行卡的list list_yes_results=[]#已查到的银行卡的list #解析报文,以字典存储 def parseData(htmls,

Python爬虫入门之Urllib库的高级用法

1.设置Headers 有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作,我们需要设置一些Headers 的属性. 首先,打开我们的浏览器,调试浏览器F12,我用的是Chrome,打开网络监听,示意如下,比如知乎,点登录之后,我们会发现登陆之后界面都变化了,出现一个新的界面,实质上这个页面包含了许许多多的内容,这些内容也不是一次性就加载完成的,实质上是执行了好多次请求,一般是首先请求HTML文件,然后加载JS,CSS 等等,经过多次

Python爬虫入门之三urllib库的基本使用

前言 所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地.在Python中有很多库可以用来抓取网页,我们先学习urllib. 注:此博客开发环境为python3 urlopen 我们先来段代码: # urllib_urlopen.py # 导入urllib.request import urllib.request # 向指定的url发送请求,并返回服务器响应的类文件对象 response = urllib.request.urlopen("http://www.bai

python爬虫开发之urllib模块详细使用方法与实例全解

爬虫所需要的功能,基本上在urllib中都能找到,学习这个标准库,可以更加深入的理解后面更加便利的requests库. 首先 在Pytho2.x中使用import urllib2——-对应的,在Python3.x中会使用import urllib.request,urllib.error 在Pytho2.x中使用import urllib——-对应的,在Python3.x中会使用import urllib.request,urllib.error,urllib.parse 在Pytho2.x中使

python爬虫二、Urllib库的基本使用

什么是Urllib Urllib是python内置的HTTP请求库 包括以下模块 urllib.request 请求模块 urllib.error 异常处理模块 urllib.parse url解析模块 urllib.robotparser robots.txt解析模块 urlopen 关于urllib.request.urlopen参数的介绍: urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=No

Python爬虫连载2-reponse\parse简介

一.reponse解析 urlopen的返回对象 (1)geturl:返回网页地址 (2)info:请求反馈对象的meta信息 (3)getcode:返回的http code from urllib import request import chardet """ 解析reponse """ if __name__ == "__main__": url = "https://www.baidu.com"

python网络入门:urllib.request模块和urllib.urllib.parse模块

************************************************* ** 转发请注明原文,尊重原创 ** 原文来自:blog.csdn.net/clark_xu 徐长亮的专栏 ************************************************* 1 urllib.parse模块 Urllib.parse模块在urllib package中 引入 >>> from urllib import parse Urllib.parse

【爬虫】使用urllib.request去爬取小说

import urllib.request import re #1获取主页源代码 #2获取章节超链接 #3获取章节内容 #4下载小说 #驼峰命名法 #注释 获取小说内容 def getNovelContent(): #获取源代码 HTTP Response对象 html = urllib.request.urlopen('http://www.quanshuwang.com/book/0/269/') html = html.read() #print(html) #设置编码 html = h