爬虫最基础

1.向服务器发出请求,服务器做出响应

url = 'https://wallhaven.cc/'

header = {

    'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36 Edg/105.0.1343.50'

}

response = requests.get(url = url, headers= header)

2.对服务器响应的内容根据需要做正则表达式匹配提取

response.text//得到的是html文件内容

response.content//可以得到图像

response.text 返回的是一个 unicode 型的文本数据,适用于文本数据的爬取
response.content 返回的是 bytes 型的二进制数据,适用于图片、文件的爬取

res = re.findall(r'<img src="(https://th.*?jpg)"', response.text) 

正则表达式

*零次或多次        +一次或多次        ?零次或一次

^()开头       () $ 结尾

[]匹配区间        [^](里面值取非)匹配区间

/s /w /d /S /W /D

正则表达式中有括号:没括号返回的是有多少个正则表达式的内容        一个括号返回的是括号中的正则表达式        多个括号返回的是元组

3.将内容下载到文件夹中

下载一个

for r in res:
    rr = requests.get(url='https://th.wallhaven.cc/small/z8/z8dg9y.jpg',headers=header)
    request.urlretrieve(rr,"./getSomethinf/one.jpg")
    open(f'./getSomethinf/one.jpg','wb').write(rr.content)

多个一起下载

for r in res:
    name = re.findall(r'https://th.*/(.*?).jpg',r)[0]
    # print(name)
    houzhui = os.path.splitext(r)[1]
    rr = requests.get(url=r,headers=header)
    path = './getSomethinf/'+name+houzhui
    with open(path ,mode='wb') as f:
        f.write(rr.content)

with创建临时运行环境

  作用:with用于创建一个临时的运行环境,运行环境中的代码执行完后自动安全退出环境。

  文件操作:使用open进行文件操作使建议使用with创建运行环境,可以不用close()方法关闭文件,无论在文件使用中遇到什么问题都能安全的退出,即使发生错误,退出运行时环境时也能安全退出文件并给出报错信息。 

注意点1 

虽然之前已经得到url,但在下载时仍然需要再次向服务器发出请求,request.get(url=url,headers=header)

否则报错urllib.error.HTTPError: HTTP Error 403: Forbidden

注意点2

打开文件夹下载文件需要路径,路径中包括下载的文件名

houzhui = os.path.splitext(r)[1]//得到文件后缀

format函数用于格式化,使用插值

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值