css select pyquery的简单爬取

本篇文章简单介绍一下一种简单实用的爬虫解析方式—css select的简单爬取,css select解析一般用两种库,一种是beautiful soup库,另一种则是这篇文章用的pyquery库。
首先我们先用pyquery库来实现一个网页内容的爬取,我们首先先打开一个小说的网页,然后点检查,如图所示:

我们想要获取这个小说的文章内容,这时候你用正则或者xpath都不是很理想,而css selset则很简单,代码如下:

  import requests
>>> from pyquery import PyQuery as pq
>>> response=requests.get('http://www.51shucheng.net/wangluo/huaidanshizenmelianchengde/5614.html')
>>> response.encoding=response.apparent_encoding
>>> doc = pq(response.text)
>>> title=doc('#page > div.content.book-body > div > h1').text()
>>> content= content=doc('#page > div.content.book-body > div > div.neirong').text()
>>> print(title)
第一卷 少年热血 第一章 欺负
>>> print(content)
二十世纪九十年代,在J市第二中学教学楼的一层走廊里。
“嘿,小子,把钱都给我拿出来!”两个头发染成花花绿绿的少年把一个身材瘦弱的学生逼在墙角。
学生底下头,小声说:“我没有钱。”
‘啪’两个少年中一个高个的一巴掌打在学生脸上。“草你妈的,别和我罗嗦,快点!”
学生被打得嘴角通红,眼泪不争气的掉下来。这时高个旁边的矮胖少年说:“算了,别打坏了。这小子是我班里学习尖子,哈哈!”
那高个看看学生:“草,看他你熊样吧。学习好有个屁用。”转头对一边的胖子说:“老肥,你去翻翻他兜,我咋不相信他没钱呢!”
膀子‘恩’了一声,来到学生身前说:“谢文东,你把手松开。”原来那学生听见高个少年的话,用手死死抓住裤兜。
见那个名叫谢文东的学生象没听见一样还是用手捂着兜。“草,你当我放屁是不是?”胖子一脚蹬在谢文东的小腹上。谢文东身子重重撞在墙上。胖子把他的手拉开,另支手伸进他裤兜里。拿出一张褶皱的五元钱。
胖子把钱交给高个少年,往地下吐口吐沫:“妈的,给你脸你不要脸。”说完,和高个少年嘻嘻哈哈离开。留下满脸痛苦的谢文东。
谢文东是J市第二中学初三学生,学习努力,头脑聪明,成绩非常优秀,在整个学校都能排在第一。但是性格有些内向,没有什么朋友, 加上身材瘦小,经常受到别人欺负。第二中学在J市不是什么重点中学,学校的管理也很松懈,经常有校外年龄不大的不良少年进出。这 些人年龄都不大,由于各种原因不再上学,在社会上糊混。见到软弱好欺的学生,不是找茬就是要钱,或许这样他们能体会到一种成就感吧!
(adsbygoogle = window.adsbygoogle || []).push({});
站在学校走廊里好一会,谢文东弯腰拣起掉这地上的书包,走出学校。回家的路上,谢文东眼睛里都是委屈的泪水,心里不停问自己:为什么?为什么他们总是欺负我?为什么他们不欺负别人?为什么会是我?
没有人能给他答案,傍晚的黑暗掩盖了他的泪水。谢文东回到家里,进门前把脸上的泪水擦干净,他不想让家里人知道自己在学校受人欺负。软弱的人不代表他们就没有自尊心,甚至他们的自尊心别任何人都强。谢文东用钥匙打开门,家里只有他的妈妈在。做好的饭菜摆在桌子上等他放学回来吃饭。见他回来后,谢妈妈说:“快点吃饭吧,一会都凉了。”
谢文东点点头问:“我爸呢?”
“你爸今天晚上夜班,不回家了”谢文东的妈妈边拿饭边说。谢文东‘哦’了一声,坐下来看着桌子上的饭菜,没有一点食欲。
见谢文东光坐着不吃饭,他妈妈担心问:“文东,怎么了?是不是生病了?”
“没有!”为了不引起妈妈的怀疑,谢文东拿起饭碗默默吃起来。
谢文东生活在一个普通家庭。爸爸在铁路上班,开机车的,经常夜班。妈妈是下岗工人,后来在外面做点小买卖。家里虽说不上富裕,但是他也从来没有却过钱花。由于他学习成绩好,父母也都很欣慰,只要他伸手要钱,父母从没有拒绝过。
第二天,谢文东还是和往常一样,五点半起床。看会儿昨天的功课后,吃点东西,向妈妈要了十元钱上学去了。他家离学校不远,只隔两条街道,快走不到五分钟就能到。谢文东来到自己班的教室,教室锁着门没有一个人。谢文东用班级钥匙打开门走进去。
他坐在班级的第一排,不是因为他个子不高,而是由于学习好。在J市很多学校都是这样,学习好的坐前面,成绩差的坐后面。班级座位 按每回大考(期中考和期末考)来定。学校对这种方法有它自己的解释:成绩差的都是上课时爱说话的或不好好听课的,让他们坐在后面可以不影响别人,给认真听课升学有希望的同学一个更好的环境。
谢文东坐在座位上看书。过一阵同学陆陆续续来到班级,寂静的教室也慢慢热闹起来。关系不错的同学纷纷凑在一起,有聊昨天晚上看的电视剧如何如何好的,有说最近哪个明星出新歌的,有的几个小女生在一起拿出珍藏的贴纸互相换的。教师里象农贸市场一样热闹。
吵闹的声音越来越大,谢文东皱了皱眉,把手里的书放下。这时昨天抢他钱的胖子进到教室,把书包放在自己的座位上。看见坐在那发呆的谢文东,嘻嘻哈哈走过去。来到近前,一扒拉谢文东的脑袋,“嘿!今天带钱了没有啊?”谢文东被吓了

首先我们需要导入pyquery库 from pyquery import PyQuery,然后获取该网页,doc = pq(response.text)
title=doc(’#page > div.content.book-body > div > h1’).text()
content= content=doc(’#page > div.content.book-body > div > div.neirong’).text()
这里面用doc将网页代码赋值给doc,方便于查找网页内容,然后就是我们要爬取的网页内容了,直接复制节点的selector,就可以输出网页内容了。
下面就是一个用css select pyquery爬取的一个小说的全部内容,并将它保存到了本地文件中。

import requests
from pyquery import PyQuery as pq
response=requests.get("http://www.51shucheng.net/wangluo/huaidanshizenmelianchengde")
response.encoding=response.apparent_encoding
doc=pq(response.text)
links=doc('#page > div.content > div.catalog > div.mulu-list a')
for link in links.items():print(link.attr.href)response=requests.get(link.attr.href)response.encoding = response.apparent_encodingdoc = pq(response.text)title=doc('#page > div.content.book-body > div > h1').text()content=doc('#page > div.content.book-body > div > div.neirong').text()print(title)print(content)with open(r"C:\Users\MI\Desktop\xiaoshuo\坏蛋是怎样练成的.txt",mode='a+',encoding='utf-8')as f:f.write(title)f.write(content)f.write("\n")

css select pyquery的简单爬取相关推荐

  1. (55)-- 简单爬取人人网个人首页信息

    # 简单爬取人人网个人首页信息 from urllib import requestbase_url = 'http://www.renren.com/964943656' headers = {&q ...

  2. Scrapy学习之第一个简单爬取小程序

    1.首先,先安装scrapy模块,使用命令:pip install scrapy,安装如果出现error: Microsoft Visual C++ 14.0 is required错误的话可参考文章 ...

  3. scrapy简单爬取内容

    scrapy的简单爬取不用新建项目.安装好scrapy后编写爬虫文件 import scrapyclass ZaobaoScrapy(scrapy.Spider):name = "zaoba ...

  4. Python爬虫:简单爬取粤菜菜谱

    项目场景: 简单爬取粤菜菜谱. 实现思路: 访问主页,获取每个菜品的菜名.图片.详情页面网址. 访问上一步中获得的所有详情页面,获取工艺.口味.时间.主料.辅料信息. 清洗所获得的数据. 保存至本地文 ...

  5. java简单爬取Boss直聘招聘基本信息

    准备工作先去https://jsoup.org/download下载一个jsoup.jar;熟悉web前端知识:熟悉浏览器抓包,分析请求和返回 开始写代码爬取 /*** @Desc: 简单爬取boss ...

  6. java爬虫-简单爬取网页图片

    刚刚接触到"爬虫"这个词的时候是在大一,那时候什么都不明白,但知道了百度.谷歌他们的搜索引擎就是个爬虫. 现在大二.再次燃起对爬虫的热爱,查阅资料,知道常用java.python语 ...

  7. 简单爬取红牛分公司基本数据part01

    简单爬取红牛分公司基本数据part01 此教程利用requests.re.pandas三个模块完成爬取. 导入模块: import requests import re import pandas获取 ...

  8. 爬虫实战--简单爬取小说网站的小说(面对过程)

    本篇博文为简单爬取小说网站的小说代码分为三种编程思想,面对过程,面对函数,面对对象,本篇为第一种,也是最简单的一种.面对过程即已过程为中心的编程思想.这里我们把爬取的详细分为以下几个步骤: 1.下载小 ...

  9. python爬虫下载小说_用PYTHON爬虫简单爬取网络小说

    用PYTHON爬虫简单爬取网络小说. 这里是17K小说网上,随便找了一本小说,名字是<千万大奖>. 里面主要是三个函数: 1.get_download_url() 用于获取该小说的所有章节 ...

  10. scrapy汽车之家车型的简单爬取

    汽车之家车型的简单爬取 spider # -*- coding: utf-8 -*- import scrapy from scrapy import Request from mininova.it ...

最新文章

  1. nginx 常见参数以及重定向参数配置
  2. Servelt学习笔记之二——使用Servlet提取表单中的数据
  3. Codeforces 1016F Road Projects
  4. android.database.cursorindexoutofboundsexception错误解决 及获取某行某列信息
  5. Spark on k8s提交测试任务失败报错解决办法:User “system:serviceaccount:default:default“ cannot get resource “pods
  6. confluence 为合并的单元格新增一行
  7. 权限设置并未向在应用程序容器 不可用
  8. extra增强延迟加载
  9. 线段树扫描线(1---算矩形的总面积)
  10. Qt笔记8--zlib实现gzip解压
  11. webstorm phpstorm idea 如何修改文件类型 修改文件类型关联
  12. php后台权限授权管理系统的思路
  13. python normalize函数_Python Wand normalize()用法及代码示例
  14. 使用Html/Css简单创建一个菜单
  15. 有哪些在深度模型添加黑盒水印的方法
  16. Android 10 拨打电话流程
  17. 什么是java字符串_什么是java字符串
  18. 闲鱼冻结多个欺诈用户:还是治标不治本
  19. 面试之Spring的启动原理
  20. 牛!各种变态的数独谜题

热门文章

  1. CATIA软件基础操作及知识工程
  2. 64位windows10操作系统,如何使用32位的IE浏览器
  3. Poi 、Jacob 统计word文档字数实现方式
  4. 使用ENVI进行监督分类
  5. dell主板恢复出厂设置_戴尔恢复出厂设置【搞定办法】
  6. CMOS门基本工作原理
  7. matlab 叉乘变点乘,向量点乘和叉乘
  8. 基于三极管的电平转换电路
  9. 手机工商银行显示服务器安装不了,工商银行网上银行助手为什么不能安装 工行网银助手不能安装...
  10. windows 编程入门资料