零基础学Python-爬虫-3、利用CSS选择器爬取整篇网络小说
【摘要】 本套课程正式进入Python爬虫阶段,具体章节根据实际发布决定,可点击【python爬虫】分类专栏进行倒序观看:【重点提示:请勿爬取有害他人或国家利益的内容,此课程虽可爬取互联网任意内容,但无任何收益,只为大家学习分享。】开发环境:【Win10】开发工具:【Visual Studio 2019】Python版本:【3.7】1、重新创建一个空项目【T3】:2、需要用的模块【request...
本套课程正式进入Python爬虫阶段,具体章节根据实际发布决定,可点击【python爬虫】分类专栏进行倒序观看:
【重点提示:请勿爬取有害他人或国家利益的内容,此课程虽可爬取互联网任意内容,但无任何收益,只为大家学习分享。】
开发环境:【Win10】
开发工具:【Visual Studio 2019】
Python版本:【3.7】
1、重新创建一个空项目【T3】:
2、需要用的模块【requests】【scrapy.selector】
3、获取访问路径:爬取网站:【
】
就爬取第一个了:点击开始阅读
进入目录页面:
【审查元素找到对应元素位置】·【目录地址:
】
4、CSS选择器【scrapy.selector】
css选择器介绍
- 在css中选择器是一种模式,用于选择需要添加样式的元素,css对html页面中的元素实现一对一,一对多或者多对一的控制,都需要用到css选择器,html页面中的元素就是通过css选择器进行控制的;
css选择器的基本语法
- 类选择器:元素的class属性,比如
class="box"
表示选取class为box的元素; - ID选择器:元素的id属性,比如
id="box"
表示选取id为box的元素; - 元素选择器:直接选择文档元素,比如p表示选择所有的p元素,div表示选择所有的div元素;
- 属性选择器:选择具有某个属性的元素,如
*[title]
表示选择所有包含title
属性的元素、a[href]
表示选择所有带有href属性的a元素等; - 后代选择器:选择包含元素后代的元素,如
li a
表示选取所有li 下所有a元素; - 子元素选择器:选择作为某元素子元素的元素,如
h1 > strong
表示选择父元素为h1 的所有 strong 元素; - 相邻兄弟选择器:选择紧接在另一元素后的元素,且二者有相同父元素,如h1 + p表示选择紧接在 h1 元素之后的所有p元素;
scrapy 中的css使用方法
以a元素来举例说明
response.css('a')
:返回的是selector对象;response.css('a').extract()
:返回的是a标签对象;response.css('a::text').extract_first()
:返回的是第一个a标签中文本的值;response.css('a::attr(href)').extract_first()
:返回的是第一个a标签中href属性的值;response.css('a[href*=image]::attr(href)').extract()
:返回所有a标签中href属性包含image的值;response.css('a[href*=image] img::attr(src)').extract()
:返回所有a标签下image标签的src属性;
5、根据目录地址获取所有章节页面信息
5.1、获取a标签:
5.2、获取所有章节访问路径:
加上判断:
6、获取每个章节网址返回的信息(为了防止被封,测试中每次只访问2个)
7、存储获取的信息为【txt文件】·测试过程还是2次循环
由于创建文件不能创建特殊符号,所以将【:】替换成了【_】
8、最终执行:(为了防止被封,故而每次访问间隔1~3s,加上time控制)
等了好久。。。如下如:
9、总结:
a)、CSS选择器的用法千变万化,只有多用才能熟能生巧。
b)、个人建议自己多找几个网站,多试试各种各样的CSS选择器截取需要的信息。
欢迎【点赞】、【评论】、【关注】、【收藏】、【打赏】,为推广知识贡献力量。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)