开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
1 Star 0 Fork 7

pony1223/IT-eBOOK

forked from tigger/IT-eBOOK
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (2)
标签 (1)
master
dependabot/pip/lxml-4.6.3
v1.0.0
master
分支 (2)
标签 (1)
master
dependabot/pip/lxml-4.6.3
v1.0.0
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (2)
标签 (1)
master
dependabot/pip/lxml-4.6.3
v1.0.0
IT-eBOOK
/
spider.py
IT-eBOOK
/
spider.py
spider.py 2.59 KB
一键复制 编辑 原始数据 按行查看 历史
血荐轩辕 提交于 2020年04月01日 15:40 +08:00 . generate markdown
import os
from bs4 import BeautifulSoup
from requests_html import HTMLSession
from requests.adapters import HTTPAdapter
SITE_URL = 'https://itpanda.net'
session = HTMLSession()
session.mount(SITE_URL, HTTPAdapter(max_retries=5))
PROXIES_SERVER = os.environ.get('PROXIES_SERVER')
PROXIES = {'http': PROXIES_SERVER, 'https': PROXIES_SERVER}
class Spider:
def get_markdown(self):
r = session.get(SITE_URL, proxies=PROXIES)
nav = r.html.find('ul.nav', first=True)
soup = BeautifulSoup(nav.html, features="lxml")
ul = soup.find('ul')
items = ul.find_all('li', recursive=False)
print('# IT eBOOK')
for item in items:
sub_items = item.ul.find_all('li')
cate_title = item.a.string.split('(')[0].strip()
cate_link = f'{SITE_URL}{item.a["href"]}'
print(f'## {cate_title}')
for sub in sub_items:
sub_cate_title = sub.a.string.split('(')[0].strip()
num = int(sub.a.string.split('(')[1].strip(')').strip())
sub_cate_link = f'{SITE_URL}{sub.a["href"]}'
print(f'### {sub_cate_title}')
self.get_books_by_cate(cate_link=sub_cate_link, num=num)
if not sub_items:
num = int(item.a.string.split('(')[1].strip(')').strip())
self.get_books_by_cate(cate_link=cate_link, num=num)
def get_books_by_cate(self, cate_link, num):
book_num = 0
page = 1
while book_num < num:
r = session.get(f'{cate_link}?sort_by=created_at&page={page}', proxies=PROXIES)
books_list = r.html.find('.list-unstyled', first=True)
books = books_list.find('.media .mt-0 a')
for book in books:
book_num += 1
bool_title, book_link = book.text, f"{SITE_URL}{book.attrs['href']}"
pan_url, pan_key = self.get_book(book_link)
print(f'- [{bool_title}]({pan_url}) 提取码: {pan_key}')
page += 1
def get_book(self, book_link):
r = session.get(book_link, proxies=PROXIES)
downloads = r.html.find('.text-danger.mr-2')
download = downloads[1] if len(downloads) > 1 else downloads[0]
download_url = f"{SITE_URL}{download.attrs['href']}"
r = session.get(download_url, proxies=PROXIES)
pans = r.html.find('.text-danger')
pan = pans[1] if len(pans) > 1 else pans[0]
pan_url = pan.attrs['href']
pan_key = r.html.search('提取码:{}</p>')[0]
return pan_url, pan_key
if __name__ == '__main__':
s = Spider()
s.get_markdown()
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

所有内容仅为编程练习使用,内容抓取自互联网,如有侵权,将及时清理删除
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/packagejava/IT-eBOOK.git
git@gitee.com:packagejava/IT-eBOOK.git
packagejava
IT-eBOOK
IT-eBOOK
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /