技术笔记:Python简单获取知轩藏书仙草毒草榜

简介: 技术笔记:Python简单获取知轩藏书仙草毒草榜

看爬虫教程的简单练习


从起始id到15000逐条爬取知轩藏书的书籍信息(目前网站上书的id尚未超过15000),存为csv文件,可以用excel打开或者导入数据库。可以设置interval,让一次爬取的数目小一点。


代码Spider-zxcs.py


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 = ''


self.url_review=''


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 = 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()


补充:ua_info.py


ua_list = 【


'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon 2.0',


'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11',


'User-Agent:Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11',


'Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4//代码效果参考:http://www.lyjsj.net.cn/wz/art_23252.html

.0.1',

'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)',


'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50',


'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0',


' Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1',


'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1',


' Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1',


相关文章
|
3天前
|
JavaScript 前端开发 Android开发
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
40 13
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
1月前
|
API Python
【02】优雅草央央逆向技术篇之逆向接口协议篇-以小红书为例-python逆向小红书将用户名转换获得为uid-优雅草央千澈
【02】优雅草央央逆向技术篇之逆向接口协议篇-以小红书为例-python逆向小红书将用户名转换获得为uid-优雅草央千澈
96 1
|
5天前
|
JavaScript 搜索推荐 Android开发
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
27 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
|
5天前
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
34 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
24天前
|
存储 缓存 Java
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
58 5
Python高性能编程:五种核心优化技术的原理与Python代码
|
1月前
|
安全 数据挖掘 编译器
【01】优雅草央央逆向技术篇之逆向接口协议篇-如何用python逆向接口协议?python逆向接口协议的原理和步骤-优雅草央千澈
【01】优雅草央央逆向技术篇之逆向接口协议篇-如何用python逆向接口协议?python逆向接口协议的原理和步骤-优雅草央千澈
66 6
|
2月前
|
数据采集 存储 缓存
如何使用缓存技术提升Python爬虫效率
如何使用缓存技术提升Python爬虫效率
|
Web App开发 数据安全/隐私保护 Python

热门文章

最新文章