2、下载人民日报
<p>某●●●●网址
<code>http://rmrb.zhouenlai.info/●●●●/1946/06/1946-06-01.htm</code></p>
<p><code>http://rmrb.zhouenlai.info/●●●●/' + year + '/' + month + '/index.php'</code></p>
<p>python爬虫提取页面关键部分
参考:<a href="https://blog.csdn.net/csqazwsxedc/article/details/68498842">https://blog.csdn.net/csqazwsxedc/article/details/68498842</a></p>
<pre><code> url = 'http://rmrb.zhouenlai.info/●●●●/' + year + '/' + month + '/index.php' # 1946/05/index.php' #需要爬数据的网址
page = requests.Session().get(url)
tree = html.fromstring(page.text)
result = tree.xpath('//strong//text()') # 获取需要的数据</code></pre>
<p>右键某一导航,审查元素,在浏览器里看到HTML文件</p>
<pre><code> <div&
<a href="1946-06-02.htm" class="b"&
<img src="/.~images/index/html.gif" alt="1946-06-02.htm"&
<strong&1946-06-02</strong&
<em&37KB</em& 1946-06-02</a&</div&</code></pre>
<p><code>result = tree.xpath('//strong//text()')</code>
//strong// :这个相当于指定标签;
/text():这个是提取其中的数据。</p>
<pre><code>import requests
from lxml import html
import os # 导入系统模块
def mkdir(path):
# 引入模块
# 去除首位空格
path = path.strip()
# 去除尾部 \ 符号
path = path.rstrip("\\")
# 判断路径是否存在
# 存在 True
# 不存在 False
isExists = os.path.exists(path)
# 判断结果
if not isExists:
# 如果不存在则创建目录
# 创建目录操作函数
os.makedirs(path)
print(path + ' 创建成功')
return True
else:
# 如果目录存在则不创建,并提示目录已存在
print(path + ' 目录已存在')
return False
# # 定义要创建的目录
# mkpath = "d:\\qttc\\web\\"
# # 调用函数
# mkdir(mkpath)
def saveHtml(file_name, file_content):
# 注意windows文件命名的禁用符,比如 /
# isExists = os.path.exists(file_name+".html")
# 判断结果
with open(file_name.replace('/', '_') + ".html", "wb") as f:
# 写文件用bytes而不是str,所以要转码
f.write(file_content)
f.close()
# if not isExists:
# with open(file_name.replace('/', '_') + ".html", "wb") as f:
# # 写文件用bytes而不是str,所以要转码
# f.write(file_content)
# f.close()
# else:
# print("文件存在")
def getHtml(url):
page = requests.Session().get(url)
tree = page.content
return tree
def start_download(month, year):
os.getcwd() # 查看当前路径
save_path = 'D:\\PycharmProjects\\rmrb\\' + year + '\\' + month # 1946\\05'
mkdir(save_path)
os.chdir(save_path) # 更改至d盘相应路径下
url = 'http://rmrb.zhouenlai.info/●●●●/' + year + '/' + month + '/index.php' # 1946/05/index.php' #需要爬数据的网址
page = requests.Session().get(url)
tree = html.fromstring(page.text)
result = tree.xpath('//strong//text()') # 获取需要的数据
_url = 'http://rmrb.zhouenlai.info/●●●●/' + year + '/' + month + '/' # 1946/05/'
url_ = '.htm'
# print (len(result))
print('开始下载:' + year + ' - ' + month) # 输出当前年月
i = 0;
for url1 in result:
# print(_url+ url1 + url_)
saveHtml(url1, getHtml(_url + url1 + url_))
print(i)
i = i + 1
print(year + ' - ' + month + " 下载成功")
int_year = 1947
start_month = 10
for i in range(15):
int_month = start_month
year = str(int_year)
for j in range(3):
# print("步进值i是:"+str(j))
month = str(int_month)
start_download( month, year)
int_month = int_month + 1
# if (int_month < 9):
# int_month = int_month + 1
# else:
# start_month = 1
# break
int_year = int_year + 1
</code></pre>