鱼C论坛

 找回密码
 立即注册
查看: 1215|回复: 0

[技术交流] python 053 爬虫之urllib

[复制链接]
发表于 2018-7-28 15:50:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 风不会停息 于 2018-9-2 20:25 编辑

1. 爬虫: 爬虫事实上就是一个程序,用于沿着互联网结点爬行,不断访问不同的网站,以便获取它所需要的资源。

2. urllib是python的一个包(关于网页), urllib中有4个模块, 分别为request, error, parse, robotparser, 导入request时, import urllib.request

3. URL 是统一资源定位符(Universal Resource Locator), 表示资源的地址(网站的网址),一般格式为 protocol :// hostname[:port] / path / [;parameters][?query]#fragment
URL由三部分组成:
第一部分是协议:http,https,ftp,file,ed2k…
第二部分是存放资源的服务器的域名系统或IP地址(有时候要包含端口号,各种传输协议都有默认的端口号,如http的默认端口为80)。
第三部分是资源的具体地址,如目录或文件名等。
例如: http://www.baidu.com:80 即为 http://www.baidu.com

4. urllib.request.urlopen(url): 打开一个url的方法,返回一个文件对象,然后可以进行类似文件对象的操作, 例如:
>>> import urllib.request
>>> response = urllib.request.urlopen('http://www.baidu.com')
>>> html = response.readline()
>>> html
b'<!DOCTYPE html>\n'

5. urllib.request.urlopen() 返回的是一个HTTPResponse的实例对象,它属于http.client模块。
>>> response = urllib.request.urlopen("http://www.fishc.com")
>>> type(response)
<class 'http.client.HTTPResponse'>

6. chardet模块详解: https://fishc.com.cn/thread-66086-1-1.html
chardet.detect(html): 返回一个字典, 其中键'encoding'的值为当前网页使用编码(存在特殊情况,例如:)
if  encode == 'GB2312':
        encode = 'GBK'

7. str.decode(encoding="utf-8", errors="strict"): 返回一个解码后的字符串, errors参数为错误处理方案, 默认为'strict'即编码错误会引发UnicodeError, 当设置为'ignore'时为忽略错误数据并继续, 其他错误处理方案见python官方文档

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 18:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表