Python 简单获取知轩藏书仙草毒草榜
2022/7/5 1:21:51
本文主要是介绍Python 简单获取知轩藏书仙草毒草榜,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
从起始id到15000逐条爬取知轩藏书的书籍信息(目前网站上书的id尚未超过15000),存为csv文件,可以用excel打开或者导入数据库。可以设置interval,让一次爬取的数目小一点。
代码如下:
from urllib import request, parse import time import random from ua_info import ua_list import re import csv import os class ZxcsSpider: # 定义常用变量,比如url或计数变量 def __init__(self): self.url = 'http://www.zxcs.me/post/{}' self.url_review='http://www.zxcs.me/content/plugins/cgz_xinqing/cgz_xinqing_action.php?action=show&id={}&m={}' self.header=['编号','书名','作者','类型','仙草','毒草'] self.interval=15000 # 获取响应内容函数,使用随机User-Agent def get_html(self, url): req = request.Request( url=url, headers={'User-Agent': random.choice(ua_list)}) res = request.urlopen(req,timeout=5) html = res.read().decode("utf-8") return html # 使用正则来解析页面,提取数据 def parse_html(self, bookid,html): pattern = re.compile( 'title.*?《(.*?)》.*?作者:(.*?) -.*?keywords.*?精校电子书,(.*?)"', re.S) title = pattern.search(html) return [bookid,title.group(1),title.group(2),title.group(3)] def get_review(self,bookid): url=self.review.format(bookid,random.random()); return self.get_html(url) # 存储提取的数据 def write2csv(self,filename,header,data): with open(filename,'w',encoding='utf_8_sig',newline='') as f: writer=csv.writer(f) writer.writerow(header) writer.writerows(data) # 主函数 def run(self): bookid = input('input bookid:') #filename=input('input filename:') startid=int(bookid) data=[] start=time.time() for i in range(startid,startid+self.interval): url=self.url.format(i) url_review=self.url_review.format(i,random.random()) try: html = self.get_html(url) r_list = self.parse_html(i,html) review=self.get_html(url_review).split(',') r_list.append(review[0]) r_list.append(review[4]) except: print(url+' 访问失败') else: data.append(r_list[:]) try: filename=bookid+'.csv' self.write2csv(filename,self.header,data) except Exception as e: print('存储失败',e) else: print('存储成功') end=time.time() print('用时{}'.format(end-start)) if __name__ == '__main__': spider = ZxcsSpider() spider.run() os.system()
这篇关于Python 简单获取知轩藏书仙草毒草榜的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门