爬虫基本库介绍(urllib,requests,re)

urllib(发起请求,内置库)

phtyon内置HTTP请求库,有四个模块:

①requests:发起请求

        urllib.requests.urlopen(url,data=None,[timeout,]*)

url:请求地址    data:请求参数   timeout:设置超时

②error:处理错误

         URLEorror:处理程序在遇到问题时会引发异常(或其派发的异常),只有应该reason属性。        

        HTTPError:是URLError的一个子类,拥有更多的属性(code,reason,headers等),适用于处理特殊HTTP错误。  

        ContentTooShortError:此异常会在urlretrieve()函数检测到已下载的数据量小于期待的数据量(由Content-Length头给定)是被引发。content属性将存放已下载(困难被截断)的数据。

③parse:解析RUL或者目录

        定义url的标准接口,实现url的各种抽取,解析,合并,编码,解码。

④ robotparser:解析网站的robot.txt

import urllib.request
import urllib.parse
# urllib简单运用
if __name__ == '__main__':
    '''urlopen方法'''
    # response = urllib.request.urlopen('https://www.python.org/')
    # # print(response.read().decode('utf-8'))
    # # 返回响应类型
    # print(type(response))
    # # 返回状态码
    # print(response.status)
    # # 返回响应头信息
    # print(response.getheaders())
    # # 获取指定参数的值
    # print(response.getheader('Server'))
    '''data参数'''
    data = bytes(urllib.parse.urlencode({'name': 'germey'}), encoding='utf-8')
    response = urllib.request.urlopen('https://www.httpbin.org/post', data=data)
    print(response.read().decode('utf-8'))

爬虫基本库介绍(urllib,requests,re)_第1张图片

re(正则表达式,内置库)

常见正则标识符
* 表示匹配前面的子表达式任意次,包括0次
. 表示匹配任意单个字符,除转义字符外
+ 表示匹配前面的子表达式一次或多次,不包括01次
? 表示匹配1次或0次
{a,b} 指定匹配次数,最少出现a次,最多出现b次
\ 表示对原字符进行转义
\d 匹配0-9之间任意一个字符,等价于表达式[0-9]
\D 匹配一个不是0-9之间的数字字符,等价于表达式[……0-9]
\s 匹配任意一个空白字符,包括空格,tab,换行符等,等价于[\t\n\r\f\v]
\S 匹配任意一个非空白字符,等价于表达式[^\t\n\r\f\v]
\w 匹配任意一个文本字符,包括大小写字母,数字,下划线,等价于[a-zA-Z0-9_]
\W 匹配任意一个非文本字符,等价于表达式[^a-zA-Z0-9_]
[a] 指定匹配a
[^a] 匹配a以外的
^ 表示匹配文本的起始位置
$ 表示匹配文本的结束位置
() 组,将匹配的内容作为一个整体

常用方法:

        re.compile():生成一个正则表达式对象,供match()和sea()函数使用。

        re.search():扫描字符串返回第一个成功匹配的字符串,如果没有,就返回None.

        re.match():匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None。

        re.findall():字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。

        re.sub():表示替换,将匹配到的数据进⾏替换。

        re.split():根据匹配进⾏切割字符串,并返回⼀个列表。

requests(发起请求,需要安装)

常用方法:

get(url,headers,params,timeout,proxies,args):对指定url发起请求。

        url:请求网址

        params:请求参数

        headers:请求头信息,User-Agent

        timeout:设置请求超时时间

        proxies:设置代理服务器

post(url,headers,encoding,json,cookies,args):对指定url发起请求。

         url:请求网址

         headers:请求头信息,User-Agent

        encoding:解码 r.text 的编码方式

        json:返回结果的 JSON 对象 (结果需要以 JSON 格式编写的,否则会引发错误)

        cookies:返回一个 CookieJar 对象,包含了从服务器发回的 cookie

import requests
# 使用requests爬取百度翻译
word = input('请输入一个单词:')
url = 'https://fanyi.baidu.com/sug'
data = {
    'kw': word
}
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.43'
}
response = requests.post(url=url, data=data, headers=headers)
print(response.json())

你可能感兴趣的:(爬虫,爬虫,python)