技术笔记: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',


相关文章
|
8天前
|
算法 Python
Python图论探索:从理论到实践,DFS与BFS遍历技巧让你秒变技术大牛
图论在数据结构与算法中占据重要地位,应用广泛。本文通过Python代码实现深度优先搜索(DFS)和广度优先搜索(BFS),帮助读者掌握图的遍历技巧。DFS沿路径深入搜索,BFS逐层向外扩展,两者各具优势。掌握这些技巧,为解决复杂问题打下坚实基础。
18 2
|
9天前
|
开发框架 开发者 Python
探索Python中的装饰器:技术感悟与实践
【10月更文挑战第31天】 在编程世界中,装饰器是Python中一种强大的工具,它允许我们在不修改函数代码的情况下增强函数的功能。本文将通过浅显易懂的方式,带你了解装饰器的概念、实现原理及其在实际开发中的应用。我们将一起探索如何利用装饰器简化代码、提高可读性和复用性,同时也会分享一些个人的技术感悟,帮助你更好地掌握这项技术。
23 2
|
14天前
|
数据采集 Web App开发 iOS开发
如何利用 Python 的爬虫技术获取淘宝天猫商品的价格信息?
本文介绍了使用 Python 爬虫技术获取淘宝天猫商品价格信息的两种方法。方法一使用 Selenium 模拟浏览器操作,通过定位页面元素获取价格;方法二使用 Requests 和正则表达式直接请求页面内容并提取价格。每种方法都有详细步骤和代码示例,但需注意反爬措施和法律法规。
|
15天前
|
数据采集 存储 Web App开发
利用Python 的爬虫技术淘宝天猫销量和库存
使用 Python 爬虫技术获取淘宝天猫商品销量和库存的步骤包括:1. 安装 Python 和相关库(如 selenium、pandas),下载浏览器驱动;2. 使用 selenium 登录淘宝或天猫;3. 访问商品页面,分析网页结构,提取销量和库存信息;4. 处理和存储数据。注意网页结构可能变化,需遵守法律法规。
|
16天前
|
数据库 开发者 Python
“Python异步编程革命:如何从编程新手蜕变为并发大师,掌握未来技术的制胜法宝”
【10月更文挑战第25天】介绍了Python异步编程的基础和高级技巧。文章从同步与异步编程的区别入手,逐步讲解了如何使用`asyncio`库和`async`/`await`关键字进行异步编程。通过对比传统多线程,展示了异步编程在I/O密集型任务中的优势,并提供了最佳实践建议。
16 1
|
29天前
|
人工智能 文字识别 Java
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?
尼恩,一位拥有20年架构经验的老架构师,通过其深厚的架构功力,成功指导了一位9年经验的网易工程师转型为大模型架构师,薪资逆涨50%,年薪近80W。尼恩的指导不仅帮助这位工程师在一年内成为大模型架构师,还让他管理起了10人团队,产品成功应用于多家大中型企业。尼恩因此决定编写《LLM大模型学习圣经》系列,帮助更多人掌握大模型架构,实现职业跃迁。该系列包括《从0到1吃透Transformer技术底座》、《从0到1精通RAG架构》等,旨在系统化、体系化地讲解大模型技术,助力读者实现“offer直提”。此外,尼恩还分享了多个技术圣经,如《NIO圣经》、《Docker圣经》等,帮助读者深入理解核心技术。
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?
|
1月前
|
网络协议 安全 Java
难懂,误点!将多线程技术应用于Python的异步事件循环
难懂,误点!将多线程技术应用于Python的异步事件循环
56 0
|
Web App开发 数据安全/隐私保护 Python