初学爬虫, 根据课程学习python爬虫,老规矩,先不管三七二十几,先敲了再说。

需求:

爬取图书的图片链接、图书的title信息、当前定价、评论数和评价星数共五部分信息。

分析:

打开当当,搜索python书籍,然后右键,检查网页元素,找到network,然后刷新整个页面,就会返回请求的页面数据,找到左边的红框内的请求链接,然后打开右边的response模块,检查下面返回的内容是否有我们需要的信息,发现没问题,就可以继续往下进行。

寻找图片:

把鼠标放在网页的图片上直接右键,然后点击检查,可以直接定位到网页源码的图片所在位置,如下图:

此时发现每一条<li ddt-pit******>...</li>内的信息都是一条图书信息

而里面的这个链接就是我们要找的第一条数据信息,图片的链接

 此时便可先获取图片的链接

import requests
from pyquery import PyQuery
import csv
import time# 找到浏览器的headers
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36'}
base_url = 'https://search.dangdang.com/?key=python&act=input'
# 获取页面
res = requests.get(base_url,headers=headers)
# 解析页面
html = res.content.decode('GBK')  # 获取页面返回信息后解码,一般使用utf-8,而此当当网使用的是GBK编码,在解码的时候我们就用GBK进行解码doc = PyQuery(html)
book_ul = doc('#component_59 li').items()  # 获取所有存放在li标签里的图书的信息,并存放在迭代器中
for one_li in book_ul:#print(one_li)# 获取图片链接,因为有的图片链接是放在src属性中,有的链接是放在data-original属性中,所以用一个if判断来选取if one_li('.pic img').attr('data-original'):img_url = one_li('.pic img').attr('data-original')else:img_url = one_li('.pic img').attr('src')print(img_url)# 标题title = one_li('.name a').attr('title')#print(title)# 价格price = one_li('.price .search_now_price').text()#print(price)# 获取评价数comments = one_li('.search_star_line .search_comment_num').text()#print(comments)# 获取星数,本身网页中的星星数是对应的数值,所以我们需要进行一个转换stars = float(one_li('.search_star_black span').attr('style').split(':')[-1].strip('%;'))/20#print(stars)

输出图片链接如下:

同样道理,获取标题、定价、评价数、评价星数,同样在刚才的循环代码添加:

最后加入翻页,整理完整代码如下:

import requests
from pyquery import PyQuery
import csv
import timeclass DDSpider(object):def __init__(self,key):self.key = key  # 当前搜索的图书名,搜索关键词self.headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36'}self.base_url = 'https://search.dangdang.com/?key='+key+'&act=input&page_index={}'# 获取界面def get_pageInfo(self):num_page = 0while True:num_page += 1page_url = self.base_url.format(num_page)res = requests.get(page_url,headers=self.headers)
#             print(res.content.decode('GBK'))# 解析df = self.parse_pageInfo(res.content.decode('GBK'))return dftime.sleep(1)  # 为了防止请求过快,添加缓冲时间if num_page == 1: # 当前设置为爬取1页数据break# 解析界面def parse_pageInfo(self,html):doc = PyQuery(html)book_ul = doc('#component_59 li').items()img_list = []title_list = []price_list = []comments_list = []stars_list = []for one_li in book_ul:
#             print(one_li)# 获取图片链接if one_li('.pic img').attr('data-original'):img_url = one_li('.pic img').attr('data-original')else:img_url = one_li('.pic img').attr('src')img_list.append('http:'+img_url)# 标题title = one_li('.name a').attr('title')
#             print(title)title_list.append(title)# 价格price = one_li('.price .search_now_price').text()
#             print(price)price_list.append(price)# 获取评价数comments = one_li('.search_star_line .search_comment_num').text()
#             print(comments)comments_list.append(comments)# 获取星数stars = float(one_li('.search_star_black span').attr('style').split(':')[-1].strip('%;'))/20#stars = one_li('.search_star_black span').attr('style')#print(stars)stars_list.append(stars)data = {'img':img_list,'title':title_list,'price':price_list,'comments':comments_list,'stars':stars_list}return pd.DataFrame(data)if __name__ == '__main__':dd = DDSpider('python')df = dd.get_pageInfo()print(df)

python爬虫之利用pyquery爬取当当网图书信息相关推荐

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

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

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

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

  3. python 爬虫 爬取当当网图书信息

    初次系统的学习python,在学习完基本语法后,对爬虫进行学习,现在对当当网进行爬取,爬取了基本图书信息,包括图书名.作者等 import requests from time import slee ...

  4. python爬虫之通过pyquery爬取大众点评评论信息

    写作缘由:朋友求助帮忙爬取一下大众点评天河商圈的商户名, 店铺收藏量, 评论数量, 好评数, 差评数, 口味评分, 环境评分,服务评分, 人均价格, 首页优质评论数. 思路: 1. 我们发现大众点评是 ...

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

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

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

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

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

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

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

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

  9. 使用selenium爬取当当网图书

    1.目标 利用Selenium抓取当当网图书并用正则表达式获取到得到商品的图片.名称.价格.评论人数信息. 2.开发环境 python2.7 +windows10 +pycharm 3.页面分析 如图 ...

  10. Scrapy爬取当当网图书销售前100

    scrapy爬取当当网图书畅销榜 一.采集任务 爬取当当网图书畅销榜信息,获取热销图书前500相关数据. 二.网页解析 1. 打开当当网,按照图书榜>图书畅销榜 进入当当网图书畅销榜[http: ...

最新文章

  1. 关于活动目录中DNS没有SRV记录的解决方法
  2. 量子纠缠在量子计算机中的作用,量子纠缠
  3. MySQL INFORMATION_SCHEMA 使用
  4. java web 定制化界面_实现javaWeb网页自定义出错界面
  5. 收藏!最强行人检测算法思维导图
  6. Flutter AnimatedWidget 实现动画的自动刷新
  7. java七大设计原则,23种设计模式
  8. Ubuntu 禁用 触摸板
  9. java file 字典查询_File listFiles
  10. NHK SHV 的 22.2 声道音频系统
  11. Python入门--个数可变的位置参数和关键字参数
  12. Ubuntu 18.04下QFIL刷机
  13. php7 opcache 编译,PHP7中用opcache.file_cache导出脚本opcode实现源代码保护
  14. MachineLearning 4. 癌症诊断方法之 K-邻近算法(KNN)
  15. netbeans php下载,Netbeans7下载和安装
  16. 启动电容与运行电容-电容-嵌入式开发-物联网开发
  17. win10内置linux读取u盘raw,U盘或磁盘分区RAW格式恢复方案
  18. 如何给码农的Mac开光
  19. Django 开发MVT-模型
  20. 上台紧张的原因有哪些

热门文章

  1. 数据可视化网页内容自动抓取工具
  2. PDF417数据容量
  3. 周杰 清华大学计算机学院,周杰 -清华大学自动化系
  4. OCR技术发展综述与达观数据的实践经验
  5. matlab2016a网盘
  6. 刷机精灵Android版V3.0,刷机精灵V3.0版发布,开启全新刷机时代
  7. 该如何实现EDIUS中的多机位编辑
  8. [CM311-1A]-全网最全 Android 软件管理
  9. LFW人脸数据集测试协议及编程实现
  10. 缠论入门到精通理论到实战