小爬虫爬起点中文网收藏榜
刚接触爬虫,用爬虫爬了一个不需要登录的网站:起点中文网,爬取了它的收藏榜单,但只筛选出了小说的排行和名字还有作者姓名,原本还打算加上简介,但是简介的源代码存在问题,用同样的方法爬取出的简介的结果是一片空白,放到之后接触更深之后再思考是不是方法存在问题。
下面附上简单的代码:
import requests #需要的库
import json
from requests.exceptions import RequestException
import re
import time
from bs4 import BeautifulSoup #美丽汤大法好url = 'https://www.qidian.com/rank/collect?style=1&page=1'
def get_one_page(url):try: #之前没有加headers被防爬功能禁止了IPheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'}response = requests.get(url, headers=headers)if response.status_code == 200: #成功状态return response.textreturn Noneexcept RequestException:return Nonedef parse_one_page(html):soup = BeautifulSoup(html, 'lxml') #第二个参数解析器类型,这里用lxmlnums=soup.find_all(attrs={'class':'book-img-box'})#序号的标签属性texts=soup.find_all(attrs={'data-eid':'qd_C40'})#书名...names=soup.find_all(attrs={'data-eid':'qd_C41'})#作者姓名...for (num,text,name) in zip(nums,texts,names):#学到新知识:多个参数的for循环用zip()print('序号:'+num.text+'\t书名:'+text.text+'\t\t'+'作者:'+name.text)def write_to_file(content):#写入文件with open('result2.txt','a',encoding='utf-8') as f:f.write(json.dumps(content,ensure_ascii=False)+'\n')def main(page):url = 'https://www.qidian.com/rank/collect?style=1&page='+str(page)#页码不同地址不同,观察发现末尾发生变化html = get_one_page(url)parse_one_page(html)if __name__=='__main__':for i in range(1,11):#改变页码的地址main(page=i)time.sleep(1)#防止速度过快被禁止
下面是部分结果,还存在小缺点就是这个因为书名长度不一样,就没办法用\t来控制对齐,用格式化输出控制应该就会解决,emmmm对,原来是我太天真了,试了很多方法比如str.ljust()和format(),序号和书名可以分开对齐了但是作者老是不能单独对齐,之后编写函数对齐吧:
序号: 1 书名:一念永恒 作者:耳根
序号: 2 书名:圣墟 作者:辰东
序号: 3 书名:修真聊天群 作者:圣骑士的传说
序号: 4 书名:玄界之门 作者:忘语
序号: 5 书名:斗罗大陆III龙王传说 作者:唐家三少
序号: 6 书名:斗破苍穹 作者:天蚕土豆
序号: 7 书名:大主宰 作者:天蚕土豆
序号: 8 书名:不朽凡人 作者:鹅是老五
序号: 9 书名:大唐仙医 作者:秃笔居士
序号: 10 书名:雪鹰领主 作者:我吃西红柿
序号: 11 书名:完美世界 作者:辰东
序号: 12 书名:万界天尊 作者:血红
序号: 13 书名:琴帝 作者:唐家三少
序号: 14 书名:放开那个女巫 作者:二目
序号: 15 书名:美食供应商 作者:会做菜的猫
序号: 16 书名:牧神记 作者:宅猪
序号: 17 书名:盘龙 作者:我吃西红柿
序号: 18 书名:斗罗大陆 作者:唐家三少
序号: 19 书名:我欲封天 作者:耳根
序号: 20 书名:凡人修仙传 作者:忘语
也可以这样哈哈哈 看起来好看多了 就是一点也不实用:
for (num,text,name) in zip(nums,texts,names):print("*********************")print('序号:'+num.text)print('作者:'+name.text)print('书名:'+text.text)print("*********************\n")
花里胡哨的效果:
*********************
序号: 1
作者:耳根
书名:一念永恒
******************************************
序号: 2
作者:辰东
书名:圣墟
******************************************
序号: 3
作者:圣骑士的传说
书名:修真聊天群
******************************************
序号: 4
作者:忘语
书名:玄界之门
******************************************
序号: 5
作者:唐家三少
书名:斗罗大陆III龙王传说
*********************
小爬虫爬起点中文网收藏榜相关推荐
- python爬虫获取起点中文网人气排行Top100(快速入门,新手必备!)
本篇博客小菌为大家带来的是用python爬虫获取起点中文网人气排行Top100的分享,希望大家能在学习的过程中感受爬虫的魅力! 我们先根据网址https://www.qidian.co ...
- 小爬虫爬取小猫咪图片并存入本地文件夹
小爬虫爬取小猫咪图片并存入本地文件夹 本人是安徽工业大学电气与信息工程学院研一学生,最近还不能开学真的是很糟心哦,由于自己比较笨吧,起步较晚还要忙着学习机器学习还有计算机视觉,但是总学这个感觉很闷也没 ...
- 爬虫2_起点中文网字体反爬
今天讲一下起点中文网的列表页爬取,准备爬取的是小说书名.图片url.详情页url.作者.字数.分类及状态. 爬取网址:https://www.qidian.com/all 分析url 翻页至第二页.第 ...
- Python爬取起点中文网月票榜前500名网络小说介绍
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...
- 爬虫实战——起点中文网小说的爬取
首先打开起点中文网,网址为:https://www.qidian.com/ 本次实战目标是爬取一本名叫<大千界域>的小说,本次实战仅供交流学习,支持作者,请上起点中文网订阅观看. 我们首先 ...
- python爬取网络小说_Python爬取起点中文网月票榜前500名网络小说介绍
观察网页结构 进入起点原创风云榜:http://r.qidian.com/yuepiao?chn=-1 老套路,懂我的人都知道我要看看有多少内容和页数需要爬. https://ask.hellobi. ...
- 写个小爬虫爬下迅雷会员
好久不写爬虫...忘了个锤子.于是借着学java的机会用java写个爬虫 爬取静态页面 迅雷会员账号和密码.时时获取最新的~ 先上我暑假写的python版~ : # -*- coding: utf-8 ...
- 字体文件反反爬-- 起点中文网
工作中遇到一个,以前没有遇到的问题是,网站把重要的数字都转换成 其他的东西 爬取网站https://book.qidian.com/info/1011454545 起点女生网 通过审查元素是这样的: ...
- python爬虫 爬取bilibili新番榜
这里用到的模块是request模块和beautifulsoup 首先我们需要打开Bilibili新番榜的审查元素 通过观察可以发现每一个动漫的信息都分别存在了li标签下的rank-item类中 而所有 ...
- python小爬虫(爬取职位信息和博客文章信息)
1.python爬取招聘信息 简单爬取智联招聘职位信息(仅供学习) # !/usr/bin/env python # -*-coding:utf-8-*- """ @Au ...
最新文章
- SVO学习笔记(二)
- 100年前伦敦爆发的霍乱,教会了人类什么?
- Visual Studio® 2010 Web Deployment Projects站点编译生成bin同时发表插件
- 科研团队如何探索商业化落地?这家语音AI公司用十年科学试验打了样
- YOLO之父退出CV界表达抗议,拒绝AI算法用于军事和隐私窥探
- windbg断点学习总结
- Win7重启后IP地址无效
- 我的世界网易怎么下载java材质包_我的世界中国版材质包怎么用 材质包设置
- java absolute_Java Path isAbsolute()用法及代码示例
- MongoDB在本地安装与启动
- SQL server 2008 r2 安装出错 Could not open key:
- javascript 自定义对象的两种方法
- 图解3GPP规范文档组织结构与编号规则
- 用python进行数据分析(二:数据处理)
- 【上海房价预测】代码实现——利用BP神经网络进行上海二手房价预测
- 如何使用图片的exif信息计算相机焦距
- zepto 的touch 、event
- Logo就是商标吗?别再被扰乱视线了
- 移远EC200 EC20 EC600 EC800连接MQTT服务器
- Dreamweaver8加载站点缓存时卡死,解决办法:
热门文章
- Leetcode笔记 每日一题 824. 山羊拉丁文 (22.04.21)
- SDUT-3337 计算长方体、四棱锥的表面积和体积(JAVA*)
- upload-labs 全21关 write-up
- Gradle 2.0 用户指南翻译——第二十三章. Java 插件
- BlackBerry Internet Service故障:公司内部同事无法互通邮件,对外联络没有问题
- Kaminari分页
- ba2plus android,BAPlus金融计算器
- 中标麒麟V7-yum源的更换(阿里云源)
- CHD的impala实现hive和hbase数据查询
- html 按钮变成椭圆,HTML 渐变椭圆按钮