Python-利用beautifulsoup写个豆瓣热门图书爬虫

简介:   Anaconda3里边自带了bs4的包,省的我自己安装了。  最近觉得模块化的写法可以让代码变得清晰易读。而且随着代码的增多,找bug也会更方便。(目前我还写不出这么多)而且模块化有种工具化的思想,拿来主义的思想在里面,使用工具可是人等少数智慧动物的专利啊。

  Anaconda3里边自带了bs4的包,省的我自己安装了。

  最近觉得模块化的写法可以让代码变得清晰易读。而且随着代码的增多,找bug也会更方便。(目前我还写不出这么多)而且模块化有种工具化的思想,拿来主义的思想在里面,使用工具可是人等少数智慧动物的专利啊。之后也要多学习使用[try - except]的写法,可以直观的看出错误。

  初学网页爬虫,目前只会爬取豆瓣这样清晰好看的静态网页,对于复杂的js控制的动态网页,我现在还束手无策。

 1 # -*- coding: utf-8 -*-
 2 """
 3 Created on Tue Jan  2 17:44:30 2018
 4 
 5 @author: xglc
 6 找到豆瓣图书的【新书速递】内容
 7 """
 8 import requests
 9 from bs4 import BeautifulSoup
10 
11 def _gethtml():
12     try:
13         req = requests.get('https://book.douban.com/')
14         data1 = []
15         data1.append(req.text)
16     except Exception as e:  
17         raise e 
18     return data1
19 
20 def _getdata(html):
21     title = []
22     author = []
23     data2 = {}
24     soup = BeautifulSoup(html,'html.parser')
25     for li in soup.find('ul',attrs={'class':'list-col list-col5 list-express slide-item'}).find_all("li"):
26         title.append(li.find('div',class_='info').find('div',class_='title').text)
27         author.append(li.find('div',class_='info').find('div',class_='author').text)
28     data2['title'] = title
29     data2['author'] = author
30 #    print (data2)
31     return data2
32 
33 def _txt(data3):
34     with open('f://book.txt','w') as f:
35         for title in data['title']:
36             f.write(title)
37         f.close
38         
39 if __name__ == '__main__':  
40     htmls = _gethtml()  
41     data = _getdata(htmls[0])
42     _txt(data)
43 #    print (data['title'])
View Code

 

目录
相关文章
|
11月前
|
数据采集 Web App开发 数据安全/隐私保护
实战:Python爬虫如何模拟登录与维持会话状态
实战:Python爬虫如何模拟登录与维持会话状态
|
12月前
|
数据采集 Web App开发 自然语言处理
新闻热点一目了然:Python爬虫数据可视化
新闻热点一目了然:Python爬虫数据可视化
|
11月前
|
数据采集 监控 数据库
Python异步编程实战:爬虫案例
🌟 蒋星熠Jaxonic,代码为舟的星际旅人。从回调地狱到async/await协程天堂,亲历Python异步编程演进。分享高性能爬虫、数据库异步操作、限流监控等实战经验,助你驾驭并发,在二进制星河中谱写极客诗篇。
Python异步编程实战:爬虫案例
|
12月前
|
数据采集 存储 XML
Python爬虫技术:从基础到实战的完整教程
最后强调: 父母法律法规限制下进行网络抓取活动; 不得侵犯他人版权隐私利益; 同时也要注意个人安全防止泄露敏感信息.
1187 19
|
11月前
|
数据采集 存储 JSON
Python爬虫常见陷阱:Ajax动态生成内容的URL去重与数据拼接
Python爬虫常见陷阱:Ajax动态生成内容的URL去重与数据拼接
|
12月前
|
数据采集 存储 Web App开发
处理Cookie和Session:让Python爬虫保持连贯的"身份"
处理Cookie和Session:让Python爬虫保持连贯的"身份"
|
11月前
|
数据采集 存储 JavaScript
解析Python爬虫中的Cookies和Session管理
Cookies与Session是Python爬虫中实现状态保持的核心。Cookies由服务器发送、客户端存储,用于标识用户;Session则通过唯一ID在服务端记录会话信息。二者协同实现登录模拟与数据持久化。
|
12月前
|
数据采集 Web App开发 前端开发
处理动态Token:Python爬虫应对AJAX授权请求的策略
处理动态Token:Python爬虫应对AJAX授权请求的策略
|
12月前
|
数据采集 网络协议 API
协程+连接池:高并发Python爬虫的底层优化逻辑
协程+连接池:高并发Python爬虫的底层优化逻辑
|
数据采集 监控 Shell
无需Python:Shell脚本如何成为你的自动化爬虫引擎?
Shell脚本利用curl/wget发起请求,结合文本处理工具构建轻量级爬虫,支持并行加速、定时任务、增量抓取及分布式部署。通过随机UA、异常重试等优化提升稳定性,适用于日志监控、价格追踪等场景。相比Python,具备启动快、资源占用低的优势,适合嵌入式或老旧服务器环境,复杂任务可结合Python实现混合编程。

推荐镜像

更多