批量截取序列网页的局部网页元素,生成子网页的html代码
批量截取子网页.py 的全部源码,适应性修改有说明
-
用于大批量的资源链接拷贝到Excel表,集中后可分类排序规整。
-
生成子网页文件a.html,可本地打开此网页,拷入Excel表格,主列取得资源标题和链接,以及其他列。
from bs4 import BeautifulSoup
import requests
import codecs
import os
import re
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
def get_url_list(url):
html = requests.get(url,headers)
soup = BeautifulSoup(html.content, 'lxml')
con_list = []
x1 = soup.find('table',attrs={'class':'newstable showtable'})# 注意查找条件,定位截取的网页元素
return x1 # 这才是完整的元素,.get_text()和.get都不完整,都是截取的
if '__main__' == __name__: #用于大批量的资源链接拷贝到Excel表,集中后可分类排序规整。 #生成子网页文件a.html,可本地打开此网页,拷入Excel表格,主列取得资源标题和链接,以及其他列。
file=open("./a.html",'a+',encoding='utf-8') #保存所写入的文件名,可适应性修改。a+以读写方式追加,可修改页数范围做增补。
'''
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
'''
url = 'https://www.weaver.com.cn/subpage/aboutus/news/news-list-26-1.html' #适应性修改,最后一位数字标识了网页序列1-71
print('核对网址的不变部分:',url[:-6])
for i in range(1,72):#72=71+1,总页码数+1,序号从1开始。页数范围需要适应性修改
url_list = get_url_list(url[:-6]+str(i)+'.html')
file.write(str(url_list))
file.close()
#用file.close()方法关闭文件.当一个文件对象的引用被重新指定给另一个文件时,Python 会关闭之前的文件。用 close()方法关闭文件是一个很好的习惯。
致谢
参考了
https://blog.youkuaiyun.com/casanava18/article/details/90399349
get_text()的用法
增加了
批量爬取、截取子网页保存为html文件。