Python爬虫-Urllib初探

2月 23, 2020

通过爬虫百度html初探urllib语法

# 导入包urllib
import urllib.request
# 向指定的url发送请求,并返回服务器响应的类文件对象
response = urllib.request.urlopen("http://www.baidu.com/")
# 类文件对象支持 文件对象的操作方法,如read()方法读取文件全部内容,返回bytes字符串
html = response.read()
#返回 bytes 对象, 所以要通过 decode() 解码成 str
res=html.decode('utf-8','ignore')
print(res)

爬取一言txt接口

import urllib.request
url = 'https://v1.hitokoto.cn/?c=f&encode=text'
data = urllib.request.urlopen(url).read().decode('utf-8','ignore')
print(data)
  • 不是所有api都提供txt,一般都是json,于是有了下面正则表达式匹配

爬取一言json接口-通过正则表达式

import urllib.request
import re
url = 'https://v1.hitokoto.cn'
data = urllib.request.urlopen(url).read().decode('utf-8','ignore')
pat = '"hitokoto": "(.*?)",'
res = re.compile(pat,re.S).findall(data)
print(res)

进阶爬取一言json接口-通过json包

#导入集成json包
import json
import urllib.request
url = 'https://v1.hitokoto.cn'
data = urllib.request.urlopen(url).read().decode('utf-8','ignore')
#用于将data解码 JSON 数据
txt= json.loads(data)
#匹配字段
res=txt.get("hitokoto")
print(res)