赞
踩
import requests import re import time url="http://10.9.47.154/python-spider/" # 爬取网站的url headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.5195.102 Safari/537.36" } # 设置请求头 def gethtml(url): res=requests.get(url=url,headers=headers) return res.content # 该函数获取目标网站的源码(二进制) def getimgpath(html): imgpath=re.findall(r"style/\w*\.jpg",html) return imgpath # 该函数获取网页中图片路径,并形成列表 def download(img_save_path,img_url): with open(img_save_path,"wb") as f: f.write(gethtml(url=img_url)) # 该函数为下载图片,第一个参数为保存的路径,第二个为下载图片的完整路径 html=gethtml(url).decode() path1=getimgpath(html=html) # 此处html为获取网页的二进制源码并decode转码,path1为图片路径列表 for i in path1: # i 为path1列表中的每一个元素 img_url=url + i # 拼接完整的图片路径 img_save_path=f"./img/{time.time()}.jpg" # 时间戳命名,总体为拼接保存的路径 download(img_save_path=img_save_path,img_url=img_url) # 执行下载函数,传参
请求方法 | 说明 |
---|---|
requests.get() | GET 方法 |
requests.post() | |
requests.head() | 只返回响应头部,没有响应正文。 |
requests.options() | |
requests.put() | |
requests.delete() |
参数名字 | 参数含义 |
---|---|
url | 请求URL 地址 |
headers | 自定义请求头部 |
params | 发送GET 参数 |
data | 发送POST 参数 |
timeout | 请求延时 |
files | 文件上传数据流 |
方法名 | 解释 |
---|---|
response.text | 响应正文(文本方式) |
response.content | 响应正文(二进制) |
response.status_code | 响应状态码 |
response.url | 发送请求的URL 地址 |
response.headers | 响应头部 |
response.request.headers | 请求头部 |
response.cookies | cookie 相关信息 |
从网页内容中提取图片地址。
正则表达式(RE),是一些由字符和特殊符号组成的字符串,它们能按某种模式匹配一系列有相似特征的字符串。
记号 | 说明 |
---|---|
. | 匹配任意单个字符(换行符除外). 表示真正的. |
[…x-y…] | 匹配字符集合里的任意单个字符 |
[^…x-y…] | 匹配不在字符组里的任意单个字符 |
\d | 匹配任意数字,与[0-9] 同义 |
\w | 匹配任意数字、字母、下划线,与[0-9a-zA-Z_] 同义 |
\s | 匹配空白字符,与[\r\v\f\t\n] 同义 |
记号 | 说明 |
---|---|
字符串 | 匹配字符串值 |
字符串1|字符串2 | 匹配字符串1或字符串2 |
* | 左邻第一个字符出现0 次或无穷次 |
+ | 左邻第一个字符最少出现1 次或无穷次 |
? | 左邻第一个字符出现0 次或1 次 |
{m,n} | 左邻第一个字符出现最少m 次最多n 次 |
记号 | 说明 |
---|---|
^ | 匹配字符串的开始 集合取反 |
$ | 匹配字符串的结尾 |
\b | 匹配单词的边界,单词包括\w 中的内容 |
() | 对字符串分组 |
\数字 | 匹配已保存的子组 |
核心函数 | 说明 |
---|---|
re.findall() | 在字符串中查找正则表达式的所有(非覆盖)出现;返回一个匹配对象的列表。 |
re.match() | 尝试用正则表达式模式从字符串的开头匹配 如果匹配成功,则返回一个匹配对象 否则返回None |
re.search() | 在字符串中查找正则表达式模式的第一次出现 如果匹配成,则返回一个匹配对象 否则返回None |
re.group() | 使用match 或者search 匹配成功后,返回的匹配对象 可以通过group() 方法获取得匹配内容 |
re.finditer() | 和findall() 函数有相同的功能,但返回的不是列表而是迭代器 对于每个匹配,该迭代器返回一个匹配对象 |
re.split() | 根据正则表达式中的分隔符把字符分割为一个列表,并返回成功匹配的列表字符串也有类似的方法,但是正则表达式更加灵活 |
re.sub() | 把字符串中所有匹配正则表达式的地方换成新的字符串 |
re.split() | 根据正则表达式中的分隔符把字符分割为一个列表,并返回成功匹配的列表字符串也有类似的方法,但是正则表达式更加灵活 |
re.sub() | 把字符串中所有匹配正则表达式的地方换成新的字符串 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。