目录

一、导言

二、代码讲解

三、成品展示

错误小tips:


一、导言

1、不知不觉就在暴戾,焦虑和虚无中过了一个无趣无味的一年,今年学了很多,但却又什么也学不好,学不通,毕竟自己今年的状况实在太差。眼高手低的情况让我一次又一次与‘熟练’,‘精通’挂不上一点勾。但愿在2023年转变为状态更好的自己,也愿各位能意志坚定,坐上自己想做的事情。切勿如作者一般,三天打鱼两天晒网.......................

二、代码讲解

1、今天是2022年的最后一天,决定回到起点,做自己该做的事情,给大家带来爬虫的起步作品---------------------爬取多页小说

2、工具:python 3.11  EXCEL  requests  openpyxl  pyquery

3、代码讲解:URL

def send_data(url,headers):'模拟客户端向网页发送请求'respon=requests.get(url=url,headers=headers).textreturn respon##数据解析
def data_parser(data):p=pq(data)      ##将网页返回的源代码转化为pyquery格式,用pyquery解析器去解析,语法为css'这里由于每一本书的结构都保存在class属性为rank_d_list的下面,一页有20本书''所以我们将网页多余源代码去掉了,这里的p('.rank_d_list')就包含了书的各个介绍结构''你可以将这个理解为列表,列表中有20本书,书:指的便是这些网页元素块'book=p('.rank_d_list')ls=[]   ##先创建好一个列表,用于过后一个大列表,里面会将每一本书的内容整合到一个个小列表中'book.items()这个方法不是字典本身的item方法,你可以理解为这是将一整块大元素分割成一个个网页小元素标签'for i in book.items():'这里的I就是每一本书的结构了,i.find('a').attr('href'):指的是找所有a标签中的href属性'book_url=i.find('a').attr('href')##这个是书的所在网页book_img=i.find('a img').attr('src')##这个是书的封页,找src的属性值book_name=i.find('a img').attr('alt')##这个是书的名字,名字当放在img标签的alt属性里writer=i.find('.rank_d_book_intro .rank_d_b_cate').attr('title')##这个是找作者book_score=i.find('.rank_d_b_ticket').text()##书的评分类似<div>喜羊羊</div> 找到就是喜羊羊,因为.text的用法就是找的文本文字kind=i.find('.rank_d_book_intro .rank_d_b_cate a:nth-child(2)').text()##找他的种类content=i.find('.rank_d_book_intro .rank_d_b_info').text()##这是书的第一段内容'数据解析之后将数据整合到一个小列表当中,这个小列表存储的就是每本书的基本介绍'ls.append(["《"+book_name+"》",writer,kind,book_url,book_img,book_score,content])print(["《"+book_name+"》",writer,kind,book_url,book_img,book_score,content])return ls

4、数据的保存---excel

##执行菜单def start():##保存数据'''创建工作铺'''wb = openpyxl.Workbook()sheet = wb.active##添加工作表(sheet)'这里是给工作表起字段名----列名'sheet.append(['书名', '作者', '种类', '书页URL', '图片', '评分', '内容'])'这句代码段的前面部分千万不能放到循环里面,否则将会覆盖掉上一页的内容''由于网页有10页数据,这里我们需要遍历爬取,字符串的拼接'for i in range(1,11):url='https://www.zongheng.com/rank/details.html?rt=1&d=1&i=2&p='+str(i)'UA和cookies的伪造'headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 Edg/108.0.1462.54','Cookie': 'ZHID=11678A3059610F4AA3B65CD2D83F040F; ver=2018; zhffr=cn.bing.com; zh_visitTime=1672482682605; sajssdk_2015_cross_new_user=1; Hm_lvt_c202865d524849216eea846069349eb9=1672482683; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%2218567bc770e0-055e38e67580a2-7a575473-1327104-18567bc770f4ae%22%2C%22%24device_id%22%3A%2218567bc770e0-055e38e67580a2-7a575473-1327104-18567bc770f4ae%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_referrer%22%3A%22%22%2C%22%24latest_referrer_host%22%3A%22%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%7D%7D; Hm_lpvt_c202865d524849216eea846069349eb9=1672482734'}data=send_data(url=url,headers=headers)ls=data_parser(data)for i in ls:'''将数据添加到工作表中,这里的ls就是刚才大列表的,i也就是一个个小列表,存储数据到不同单元格需要放入小列表中存储,这样他才不会挤到同一个单元格中'''sheet.append(i)wb.save('小说网10页.xlsx')##爬取完成,保存到excelprint('第'+str(i)+'页爬取完成')

5、完整代码

import openpyxl
from bs4 import BeautifulSoup
import requests
from pyquery import PyQuery as pq##发送数据
def send_data(url,headers):respon=requests.get(url=url,headers=headers).textreturn respon##数据解析
def data_parser(data):p=pq(data)book=p('.rank_d_list')ls=[]for i in book.items():book_url=i.find('a').attr('href')book_img=i.find('a img').attr('src')book_name=i.find('a img').attr('alt')writer=i.find('.rank_d_book_intro .rank_d_b_cate').attr('title')book_score=i.find('.rank_d_b_ticket').text()kind=i.find('.rank_d_book_intro .rank_d_b_cate a:nth-child(2)').text()content=i.find('.rank_d_book_intro .rank_d_b_info').text()ls.append(["《"+book_name+"》",writer,kind,book_url,book_img,book_score,content])print(["《"+book_name+"》",writer,kind,book_url,book_img,book_score,content])return ls##执行菜单def start():##保存数据'''创建工作铺'''wb = openpyxl.Workbook()sheet = wb.activesheet.append(['书名', '作者', '种类', '书页URL', '图片', '评分', '内容'])for i in range(1,11):url='https://www.zongheng.com/rank/details.html?rt=1&d=1&i=2&p='+str(i)headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 Edg/108.0.1462.54','Cookie': 'ZHID=11678A3059610F4AA3B65CD2D83F040F; ver=2018; zhffr=cn.bing.com; zh_visitTime=1672482682605; sajssdk_2015_cross_new_user=1; Hm_lvt_c202865d524849216eea846069349eb9=1672482683; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%2218567bc770e0-055e38e67580a2-7a575473-1327104-18567bc770f4ae%22%2C%22%24device_id%22%3A%2218567bc770e0-055e38e67580a2-7a575473-1327104-18567bc770f4ae%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_referrer%22%3A%22%22%2C%22%24latest_referrer_host%22%3A%22%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%7D%7D; Hm_lpvt_c202865d524849216eea846069349eb9=1672482734'}data=send_data(url=url,headers=headers)ls=data_parser(data)for i in ls:sheet.append(i)wb.save('小说网10页.xlsx')print('第'+str(i)+'页爬取完成')if __name__ == '__main__':start()

三、成品展示

错误小tips:

大家最有可能出错找不到元素的时候可能就是在css语法上,也就是pyquery那里,例如有一个标签为<div class=rank_d_list borderB_c_dsh clearfix></div>,这里如果注意看的话很容易发现是有两个空格的,需要将borderB_c_dsh 和clearfix删除,只留最前面那个

四、爬虫CSS语法;

<div id='f1' class='v1'>我的<div id='f2' class='v2'>你的<img src='http:................'><div id='f2' class='v2'>你的</div><span id='f3' class='v3'>他的</span></div>

查找第二个div 的img标签:1、.f1 div img(一个空格代表下一个节点)

2、.f1 .f2 img

css查找同名同属性的最后一个标签----------找这个可以用 :    .f1 div:last-child------这是大的div中的最后一个div标签,第一个的话就是.f1 div:first-child

第N个可以用.f1 div:nth-child(x)

以上的方法就是用在定位同一标签下的多个标签中的其中一个,大家可以好好去找资料,好好的巩固这个CSS语法,后期学习会更加重要,基本上的网页解析都可以用上他

Excel爬虫--------------起点回归相关推荐

  1. 爬虫起点小说网所有小说基本信息

    爬虫起点小说网所有小说基本信息 第一篇博客,先试试水.爬虫你们懂的,三小时5万条数据: 多线程 失败再爬取机制 多次失败链接储存再爬取 自定义数据量 代码块 导入需要的包 # -*- coding: ...

  2. 安居客爬虫+分析+回归

    安居客爬虫+分析+回归 工具:Pycharm,Win10,Python3.6.4 这次我们要做的是安居客西安地区房源爬虫,然后数据分析,并做一个简单的回归分析. 我们之前的爬虫和简单的数据分析已经说了 ...

  3. excel爬虫相关学习1:简单的excel爬虫

    目录 1 什么是excel 爬虫 2 EXCEL爬虫 2.1 excel 爬虫的入口 2.2 需要配置的信息 2.2.1 如何获得 ua信息 2.3 获取的信息 2.3.1 获取信息的基本内容 2.3 ...

  4. python爬虫 - 起点女生榜单爬取 - 1

    python爬虫 - 起点女生榜单爬取 ​ 最近一直在追庆余年,顺带瞄了一眼小说,真真是精彩(虽然因为范闲多妻的设定接受不了就放弃了). ​ 说来说去,还是钟爱女频的修仙小说,所以就想爬一下起点女生网 ...

  5. R的爬虫和回归模型案例-以北京自如房租价格为例

    一.背景 爬虫向来不是R的专长,但并不代表R在此方面一事无成.正好在学习R的rvest爬虫包,不如边学边做,自己来做一个案例. 作为一名消费者,自如不错的管理服务和靠谱的房源使得在帝都想省事儿的我们, ...

  6. excel爬虫相关学习2:vba 爬虫相关xmlhttp

    目录 前言:vba 爬虫相关xmlhttp的方法 1 什么是xmlhttp 1.1 定义 1.2 特点 1.3 创建xmlhttp对象的过程 1.4  XMLHTTP对象创建的几种方法: 2 XMLH ...

  7. 爬虫-起点-selenium-动态页面

    1.准备工作 1.1访问动态页面必须先安装selenium ​ 在cmd界面下: pip3 install selenium ​ 测试是否安装成功 python3 import selenium 1. ...

  8. 计算机进行回归分析,excel表格数据分析回归的模型是-excel数据分析线性回归中MS,SS,F,DF分别是什么意思...

    excel回归结果的每个值 都是什么含义,都是怎么来的? SS表示均值偏差的平方和和数据的总变化量. F是F的值,F是方差分析得到的统计量,用来检验回归方程是否显著. DF表示自由度,自由度是在计算某 ...

  9. 储存数据与操作Excel [爬虫专题(9)]

    <目录> 存储数据的方式 读取与写入 写入Excel文件 Excel文件的读取 练习

最新文章

  1. 【TX2】TX2开发板系统默认串口有ttyS0(调试口)、ttyTHS1、ttyTHS2、ttyTHS3,通过修改设备树文件,可以新增三个串口
  2. Jon Person教你如何用.NET/.NETCF写GPS应用程序。
  3. 如何安装部署salt yum?
  4. sklearn 岭回归
  5. neural network ppt for support vector machine
  6. 佳能2900打印机与win10不兼容_佳能RF 1.4、RF 2增倍镜与RF 100500mm L IS USM并不完全兼容...
  7. 怎样在数组末尾添加数据_如何利用C++实现可变长的数组?
  8. 如何在 NVIDIA GPU、CUDA 和 cuDNN 中使用 OpenCV 的“dnn”模块
  9. 操作文件读写JSON的建议工具类
  10. CCS软件的安装教程
  11. 服务器位置不可用,服务器的MSDTC不可用解决办法
  12. ssoj 2279 磁力阵
  13. Win10易升下载链接
  14. OCR文本识别,文本行检测技术。
  15. 关于舆情系统的“准”
  16. python学习--pandas高级应用
  17. Windows域策略 设置关闭事件跟踪器【全域策略生效】
  18. 欧美剧集观看最佳索引 【2006-9-24更新】
  19. Java版 人脸识别SDK demo
  20. BaiduPCS-Go 下载文件出现 403 Forbidden 的解决方法

热门文章

  1. 智能手机逐渐走到穷途末路,苹果也将没有肆意的机会
  2. 用户认证与授权(登录功能)
  3. trunk和acces
  4. 【OpenCV3编程入门学习笔记】——第1章 邂逅OpenCV
  5. js本地图片预览,兼容ie[6-9]、火狐、Chrome17+、Opera11+、Maxthon3tr td style=width:35%; class=noBorderL
  6. EditText设置密码可见与不可见
  7. php_online_coding,搭建自己的网页播放器——MKOnlinePlayer
  8. Unity WebGL打包网页端运行显示Not allowed to access uv4 on mesh
  9. ntfs文件系统服务器版,NTFS文件系统基本介绍
  10. 招聘网站企业信息招聘公司实时更新监控提醒