Note:
如果涉及侵权等问题,求留言通知
Requirements:
- beautifulsoup4
- requests
- pdfkit (wkhtmltopdf官网下载,windows添加路径到环境变量,Linux下载安装也需要设置环境变量)
参考网页:
代码中的“自己的class"需要自己去替换, 也可留言交流。
# coding=utf-8
import pdfkit
import requests
from bs4 import BeautifulSoup
import os,re
from urllib.parse import urljoin
#获取网页所有的标题以及对应的地址
def parse_url_to_html(url,name):
heads = {
'accept-language': 'zh-CN,zh;q=0.9', #以中文的形式访问
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'}
response=requests.get(url,headers = heads)
print(response.status_code) # 测试是否能链接到目标网站
soup=BeautifulSoup(response.content,"html.parser")
mainpages = []
maintitles= []
tag_main = soup.find_all(class_ = "devsite-section-nav devsite-nav nocontent")[0]#获取第一个class 为"devsite-section-nav devsite-nav nocontent"的标签,这个里面包含了网址和标题
#www.tensorflow.org 中的标题访问
for i in tag_main.find_all(class_ = "devsite-nav-item devsite-nav-item-section-expandable devsite-nav-accordion"): #按照需要进行选择
if i == None:
continue
else:
mainpages.append(i.span.get('href')) #获取1级标题 注意html中#为一部分,如果出现www.abc.html/#id, 需要访问前面的主网址即可
maintitles.append(i.span.get_text())
# 从Li的标签中获取2级标题
for j in i.find_all('li'):
mainpages.append(j.a