最近学习了python爬虫的基础,作为爬虫领域的萌新,写下此篇来做一下记录。
首先在进行爬虫前要做好如下准备:
- 安装python环境(本人安装的3.10最新环境),安装链接如下:python官网
- 安装并会使用开发工具如pycharm,下载链接:pycharm官网
- 安装需要用到的库。
- 了解正则表达式,beautifulsoup,xpath。
本次爬取的网址为:分类 风之领域 下的文章 - 阿七美图馆
正则表达式(获取照片集的链接):
re.compile(r'<a class="item-link" href="(?P<href>.*?)">',re.S)
子页面正则表达式(获取照片的下载链接):
re.compile(r'data-original="(?P<img>.*?)"',re.S)
图片下载:
#下载图片
img_resp = requests.get(img,headers=headers)
img_name=img.split("/")[-1]
with open("img/"+img_name,mode="wb") as f:
f.write(img_resp.content)
print("over!",img_name)
time.sleep(1)
print("all over!!!")
完整代码: ?
import requests
import re
import time
ul = "https://a7i.cn/category/fzly/"
headers ={
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36"
}
resp = requests.get(ul,headers = headers)
# print(resp.text)
obj1 = re.compile(r'<a class="item-link" href="(?P<href>.*?)">',re.S)
obj2 = re.compile(r'data-original="(?P<img>.*?)"',re.S)
result1 = obj1.finditer(resp.text)
for it in result1:
href = it.group('href')
# print(href)
resp2 = requests.get(href,headers = headers)
result2 = obj2.finditer(resp2.text)
for itt in result2:
img = itt.group('img')
print(img)
#下载图片
img_resp = requests.get(img,headers=headers)
img_name=img.split("/")[-1]
with open("img/"+img_name,mode="wb") as f:
f.write(img_resp.content)
print("over!",img_name)
time.sleep(1)
print("all over!!!")
|