python获取网页信息练习01 获取国匠城日课板块话题信息
2018-11-02 00:28
141 查看
python获取网页信息练习01 获取国匠城日课板块话题信息
完成的人生中第一个网页信息获取练习,好开心
本次练习的主要内容
获取国匠城网站日课话题板块相关信息,编号、主题、日期、时间、回复数、浏览数、博主、博主粉丝数
主要用到os,requests和bs4模块
起始设置
起始网址、存储目录设置
主要利用os.chdir更改文件路径,利用os.makedirs新建存储目录,并且提前利用textFile.write(‘提前写入要存储的信息作为数据表头’)
// 如果文件夹已存在,不报错,继续执行 os.makedirs('国匠城日课话题',exist_ok=True)
获取一级网址信息
利用requests获取首页信息,并转为response对象以后期关键字选择
获取二级网址
观察一级网址的html,发现二级网址的ID编号都在一个标签内,并且新建一个空的列表以存储这些ID数字
观察到二级网址为http://bbs.caup.net/read-htm-tid-“ID编号”-page-1.html,所以采用字符串相加获得所有二级网址url,并放在一个序列中,以便后期使用
获取每个主题的信息
根据每个id属性或者关键标签筛选出需要的信息
保存每个主题的信息
利用文件读写功能,写到第一步新建的txt中
循环
根据设置要下循环一级网址的数量进行循环
完整代码
// An highlighted block #! python3 #获取国匠城日课话题 import os,bs4,requests #设置起始页面,保存目录、信息 URL_01='http://bbs.caup.net/thread-htm-fid-452-page-1.html' os.chdir('F:\\Python\\项目练习\\获取数据练习') os.makedirs('国匠城日课话题',exist_ok=True) textFile=open('国匠城日课话题\\国匠城日课话题.txt','w') textFile.write('编号,主题,日期,时间,回复数,浏览数,博主,粉丝数\n') textFile.close() PageNum=int(input('请输入下载页面数:')) PageNum_0=1 #初始 while PageNum_0<=PageNum: #获取一级网址url及信息 print('正在解析第%d页的信息' %PageNum_0) URL_01_res=requests.get(URL_01) URL_01_res.raise_for_status() URL_01_soup=bs4.BeautifulSoup(URL_01_res.text,'lxml') #获取二级网址url URL_02=URL_01_soup.select('tbody') if URL_02 == []: print('未搜索到有效信息') else: URL_02_Id=[] for i in range(len(URL_02)): URL_02_Attr=URL_02[i].attrs if 'normalthread_' in URL_02_Attr.get('id'): URL_02_Id.append(URL_02_Attr.get('id')[13:]) else: pass #print(URL_02_Id) print('共找到'+str(len(URL_02_Id))+'个日课主题') URL_02_text=[] for i in URL_02_Id: text='http://bbs.caup.net/read-htm-tid-%s-page-1.html' %i URL_02_text.append(text) #print(URL_02_text) #获取每个主题的信息 for i in URL_02_text: res=requests.get(i) res.raise_for_status() resSoup=bs4.BeautifulSoup(res.text,'lxml') title_text=resSoup.select('#thread_subject')[0].getText() if ':' in title_text: Title=title_text.split(':')[0] #编号 Text=title_text.split(':')[1] #主题 else: Title=title_text Text=title_text content_text=resSoup.select('.mtn')[0].getText().strip('\n').split(' ') Date=content_text[0] #日期 Time=content_text[1] #时间 Reply=content_text[2] #回复数 Look=content_text[3] #浏览数 author_text=resSoup.select('[class="author-bar-hd mbm cl"]')[0].getText().split('\n') author_Name=author_text[3] #博主 author_Funs=author_text[7][4:6] #粉丝数 #保存每个主题的信息 textFile=open('国匠城日课话题\\国匠城日课话题.txt','a') textFile.write(Title+','+Text+','+Date+','+Time+','+Reply+','+Look+','+author_Name+','+author_Funs+'\n') print('正在写入'+Title+'的相关信息') textFile.close() #循环 print('第%d页的信息已获取完成' %PageNum_0) PageNum_0 += 1 URL_01='http://bbs.caup.net/thread-htm-fid-452-page-'+str(PageNum_0)+'.html' print('此次任务全部完成')
相关文章推荐
- python获取网页信息练习02 requests获取网页图片
- Python+Selenium练习篇之30-获取当前页面全部图片信息
- 简单爬虫python实现01——获取网页源码与存储
- 用python怎样爬网页呢?其实就是根据URL来获取它的网页信息!
- python获取网页amf的信息
- python编程练习之四——获取系统内存、CPU、磁盘、平均负载信息并保存到数据库中
- boost c++ lib on linux(5) - 小练习——获取网页内容并提取有用信息
- python练习:疾病专家信息获取工具
- 在python使用selenium获取动态网页信息并用BeautifulSoup进行解析--动态网页爬虫
- Python(2):Python获取网页信息
- python应用bs4获取网页源码内容信息,以及os模块
- Python网页抓取正则表达式应用练习-爬取基金信息
- python3.3三种简单获取网页信息的方法
- Python3+Selenium(二)去重获取网页中邮箱信息
- Python的学习(十九)--获取网页信息(一)
- Python selenium+AutoIt 实现自动获取网页内Flash窗口中的信息,以图片的方式保存
- 使用python urllib2获取网页信息
- python从零写一个采集器:获取网页信息
- python urllib* 获取网页信息
- Python入门小练习 003 利用cookielib模拟登录获取账户信息