初次系统的学习python,在学习完基本语法后,对爬虫进行学习,现在对当当网进行爬取,爬取了基本图书信息,包括图书名、作者等
import requests
from time import sleep
from lxml import etree
class dangdang_spider():
#定义爬虫类def __init__(self):self.url="http://category.dangdang.com/pg{}-cp01.00.00.00.00.00.html" #爬虫网址self.headers= {#设置headers'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'}
#爬取基本网页信息def parse(self,url):r=requests.get(url,headers=self.headers)return r.content.decode(encoding='gbk')
#对数据处理def handle_data(self, data,i):html = etree.HTML(data)#对信息进行html格式化msg_list=[]li_list=html.xpath("// ul[ @ id = 'component_0__0__6612']/li")#利用xpath锁定图书信息所在的html标签for li in li_list:msg = {}msg['book_title'] = li.xpath('./p/a/text()')[0]msg['book-author'] = li.xpath('./p/span[1]/a[1]/@title')[0]if len(li.xpath('./p/span[1]/a[1]/@title')) >0 else '无'msg['book-publish'] = li.xpath('./p/span[3]/a/text()')[0]if len(li.xpath('./p/span[3]/a/text()')) >0 else '无'msg['book-publish_time'] = li.xpath('./p[5]/span[2]/text()')[0].replace(' /','')if len(li.xpath('./p[5]/span[2]/text()')) >0 else '无'msg['book-descrip'] = li.xpath('./p[2]/text()')[0]if len(li.xpath('./p[2]/text()')) >0 else '无'msg['book-price'] = li.xpath('./p[3]/span[1]/text()')[0]msg['book-pinglun'] = li.xpath('./p[4]/a/text()')[0]msg_list.append(msg)# print(msg_list)next_url = self.url.format(i) #构建下一页urlreturn msg_list, next_urldef save_data(self,data):for msg in data:msg_str=msg['book_title']+','+msg['book-author']+','+msg['book-publish']+','+msg['book-publish_time']+','+msg['book-descrip']+','+msg['book-price']+','+msg['book-pinglun']print(msg_str)with open('dangdang.csv','a',encoding='utf-8') as f: #写入文件f.write(msg_str)f.write('\n')def run(self):i=1next_url=self.url.format(i)while next_url:html_str=self.parse(next_url)i = i + 1msg_list, next_url=self.handle_data(html_str,i)self.save_data(msg_list)print(next_url)sleep(2)if __name__ == '__main__':d=dangdang_spider()d.run()
爬取结果截图 爬取结果截图

python 爬虫 爬取当当网图书信息相关推荐

  1. python爬虫-爬取当当网书籍信息存到Excel中

    文章目录 一.任务 二.分析 (一).单页面的信息分析 源代码分析 目标信息定位与分析 代码设计 (二).所有目标页面链接分析 目标链接分析 代码设计 三.注意要点 四.完整代码 五.参考 一.任务 ...

  2. python爬虫爬取当当网的商品信息

    python爬虫爬取当当网的商品信息 一.环境搭建 二.简介 三.当当网网页分析 1.分析网页的url规律 2.解析网页html页面 书籍商品html页面解析 其他商品html页面解析 四.代码实现 ...

  3. scrapy框架的简单使用——爬取当当网图书信息

    ** Scrapy爬取当当网图书信息实例 --以警察局办案为类比 ** 使用Scrapy进行信息爬取的过程看起来十分的复杂,但是他的操作方式与警局办案十分的相似,那么接下来我们就以故事的形式开始Scr ...

  4. 在当当买了python怎么下载源代码-python爬虫爬取当当网

    [实例简介]python爬虫爬取当当网 [实例截图] [核心代码] ''' Function: 当当网图书爬虫 Author: Charles 微信公众号: Charles的皮卡丘 ''' impor ...

  5. Python 爬虫第三步 -- 多线程爬虫爬取当当网书籍信息

    XPath 的安装以及使用 1 . XPath 的介绍 刚学过正则表达式,用的正顺手,现在就把正则表达式替换掉,使用 XPath,有人表示这太坑爹了,早知道刚上来就学习 XPath 多省事 啊.其实我 ...

  6. Python爬虫实战+Scrapy框架 爬取当当网图书信息

    1.环境准备 1.在python虚拟环境终端使用 pip install scrapy下载scrapy依赖库 2.使用scrapy startproject book创建scrapy心目工程 3.使用 ...

  7. 爬虫入门经典(二十四) | 爬取当当网图书信息并进行数据清洗

      大家好,我是不温卜火,是一名计算机学院大数据专业大三的学生,昵称来源于成语-不温不火,本意是希望自己性情温和.作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己 ...

  8. 请用Python写一个爬虫程序,爬取当当网图书畅销榜数据

    好的,下面是一个简单的 Python 爬虫代码,可以爬取当当网图书畅销榜数据: import requests from bs4 import BeautifulSoupurl = "htt ...

  9. 爬虫项目实战十一:爬取当当网商品信息

    爬取当当网商品信息 目标 项目准备 网站分析 页码分析 反爬分析 代码实现 效果显示 目标 批量爬取当当网商品信息,保存为csv文件到本地. 项目准备 软件:Pycharm 第三方库:requests ...

最新文章

  1. window 10 桌面显示计算机的操作
  2. c# 字典按ascii 排序_利用工作表函数,对字典键进行排序并给出对应重复个数
  3. jemeter多场景混合案例_Redis 混合存储最佳实践指南
  4. FB壕掷千万办换脸视频检测挑战赛,网友:这是帮Deepfake训练鉴别器吗?
  5. redis源码之sds
  6. spring框架学习笔记(一)
  7. mysql事务隔离级别 花_MySQL事务的隔离级别
  8. node.js初步探究
  9. 软件设计原则(六)迪米特法则 -Law of Demeter
  10. 结合电商支付业务一文搞懂DDD
  11. http请求 url 竖线_http.createServer创建http服务
  12. python批量读取文件名_Python遍历目录并批量更换文件名和目录名的方法
  13. 传说之下音乐计算机版,传说之下同人音乐
  14. sao java_SAO Utils
  15. 4. 木马病毒和免杀技术,另一种免杀思路
  16. keepass和坚果云实现全平台密码管理
  17. 【数据科学】肯德尔等级相关系数( Kendall's tau coefficient )
  18. Knowledge-Aware Graph-Enhanced GPT-2 for Dialogue State Tracking论文笔记
  19. “我,从油漆工开始的80后,曾经靠副业的收入买车买房”
  20. keil5新建STM32工程文件--实践篇手把手教学(以STM32F103为例)

热门文章

  1. 数值计算 - 误差的来源
  2. Gradle 的Dependencies
  3. [数据结构] python 单链表的创建
  4. Python Markdown的拓展
  5. VuePress超详细简单教程
  6. sql注入--POST注入
  7. 对象映射框架MapStruct与orika的简单使用
  8. 网站一键修改黑白色方法(附代码)
  9. 论MathType中空格的正确的输入方法
  10. VsCode终端无法运行编译生成的exe文件解决方法