加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
jiandan_init.py 2.16 KB
一键复制 编辑 原始数据 按行查看 历史
2689725568@qq.com 提交于 2020-02-14 14:47 . 煎蛋网爬取
import urllib.request
import os
import time
import re
import urllib.error
## 打开煎蛋网页面
def openJianDan(url):
if url.find('http:') == -1 :
url = 'http:' + url
try:
res = urllib.request.Request(url)
## 模拟电脑环境
res.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36')
response = urllib.request.urlopen(url,timeout=10)
html = response.read()
return html
except Exception:
print("糟糕,爬取网站的时候出现了点错误:本次的url是:" + url)
return -1
## 下载网页上图片内容
def downloadImg(path,fileName):
## 循环次数
count = 0
## 校验是否全部下载成功
isDownloading = True
with open(fileName,'r') as imgList:
for img in imgList:
count +=1
saveImgName = path + '\\' + img.strip().split('/')[-1]
if os.path.exists(saveImgName):
pass
print("该目录已存在,本次跳过" + str(count))
else:
html = openJianDan(img.strip())
if type(html) == int:
isDownloading = False
pass
else:
with open(saveImgName,'wb') as f:
f.write(html)
return isDownloading
## 返回本页面图片路径
def findByImageList(html):
html = html.decode('utf-8')
imgAddrs = []
#下载本页图片信息 匹配到图片 +表示匹配一次或多次 ()表示之获取里面的数据 ^表示取反
imgRule = r'<img.+src="([^"]+\.jpg)'
imgAddrs = re.findall(imgRule,html)
return imgAddrs
## 返回下一个url路径
def seekNextUrl(html,urldict):
html = html.decode('utf-8')
## 判断是否存在,存在返回下标值
hrefRule = r'<a.+href="(//jandan.net/.+\#comments)'
hrefList = re.findall(hrefRule,html)
for each in hrefList:
if each in urldict:
## 存在不做操作,跳过
pass
else:
## 不存在则返回
return each
return -1
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化