当前位置:   article > 正文

Python爬虫实现(手把手教你拿捏一个小爬虫,爬取小说目录)_pycharm爬小说代码

pycharm爬小说代码

一,获取网页的内容(以笔趣阁为例)

1.获取URL

首先找到一个我们要爬取的网页,右键后,打开检查

找到网络选项 ,并刷新网页

在下面条目的响应中找到自己想要的数据(我们这次想要获取的是小说的目录)

可以看到我们想要的数据在这个08331/中

 在的08331/标头中找到对应的URL

复制下来

2.利用requests模块发送get请求

requests模块是第三方模块,可以在控制台输入下列命令下载(要联网)

进入PyCharm,创建一个py文件,导入requests模块 

利用requests模块中的get函数,传入我们上面复制的URL,用response变量接收返回值

我们可以直接打印response查看状态码,如果是200就代表正常访问

此时response.text就是我们获取的网页数据

  1. import requests
  2. url="https://www.biquge365.net/newbook/08331/"
  3. response=requests.get(url)
  4. print(response)

我们用content接收response.text,再将response关闭

  1. content=response.text
  2. response.close() #将response关闭

这样我们就获取了我们需要的数据,但里面还有很多东西不是我们想要的,接下来就要数据解析,来从一堆乱七八糟的数据中得到我们需要的

打印content得到的内容

二,数据解析 (Re解析)

1.正则表达式简介

我们可以用正则表达式来从content中获取我们要的数据

正则表达式简单来说就是一种规则,我们可以利用正则表达式从文本筛选符合该种规则的字符串

正则表达式主要依赖元字符,下面是我们会用到的元字符的介绍:

        .*?  惰性匹配:匹配尽可能少的字符

举个例子:“我......爬虫”如果我们要匹配省略号中的字符串,那么我们对“我写出来爬虫了,看来爬虫不难嘛”进行匹配,会得到“写出来”,“写出来爬虫了,看来”两个字符串,这两个字符串都符合规则,但如果我们用“我.*?爬虫”作为表达式,就只会得到“写出来”。

re模块中会用到的函数介绍:

  1. #finditer:匹配字符串中所有符合正则的内容(以迭代器形式返回) 从迭代器迭代对象是match对象,拿到内容要用group()方法
  2. #\d:匹配数字
  3. iter1=re.finditer(r"\d","小白鼠的寿命约有1-3年,也是常用的哺乳动物模式生物,青蛙的寿命一般为5年。")
  4. for i in iter1:
  5. print(i.group()) #打印1 3 5

2.获取目标数据

导入re模块,根据目标数据在content里的特征写出相应的正则表达式

我们可以发现每个章节名称都镶嵌在一个相同的结构中,除了框选的内容,其他都是一样的。我们可以根据这相同部分来提取章节名称 

  1. #在正则表达式中想获取内容的位置改成(?P<分组名字>表达式),即可单独获取该内容
  2. data=re.finditer(r'<li><a href=".*?" title="(?P<title>.*?)">.*?</a></li>',content)
  3. for item in data:
  4. print(item.group("title")) #打印一下看看结果

三,将数据写入文件

在项目里创建个文件,将数据写入就行了

完整代码

  1. import requests
  2. import re
  3. url="https://www.biquge365.net/newbook/08331/"
  4. response=requests.get(url)
  5. content=response.text
  6. #在正则表达式中想获取内容的位置改成(?P<分组名字>表达式),即可单独获取该内容
  7. data=re.finditer(r'<li><a href=".*?" title="(?P<title>.*?)">.*?</a></li>',content)
  8. for item in data:
  9. with open("神秘复苏目录.txt","a") as f:
  10. f.write(item.group("title"))
  11. f.write("\n")
  12. response.close()

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/825098
推荐阅读
相关标签
  

闽ICP备14008679号