打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
python学习(二)爬虫

一:获取小说页面

所需模块

import requests #获取网络连接

目标小说网站:http://m.50zw.la

获取页面

r = requests.get('http://m.50zw.la',params=re_header)

requests的高级特性

这里的re_header是HTTP请求头,用来模仿浏览器访问,避免被网站发现
获取方法如下
1,用chrome打开小说网站
2,按F12进入开发者模式或者 鼠标右键->检查 进入开发者模式
3,点击network
4,如图:


注:request-header里的并不需要全部复制,只要一部分就可以,具体的自己试一试

然后我们获取到的网页就会保存在r里面


这里还要设置编码,requests默认为utf-8,我们的目标网站的编码是gbk


打印出来的是网站的源代码,我们要获得小说章节内容,只需要获得文字就行了。
所以我们得把网站源码里得代码部分全部剔除掉。

二:剔除源码中的代码部分

所需模块:

from bs4 import BeautifulSoup

极客学院|BeautifulSoup的用法

这个模块可以根据网页内的标签来获取指定的内容
如:


通过select方法选取html页面的title标签,获得的返回是一个列表,如图:


再用text属性来获取标签内的文字:


掌握了这些,接下来获取章节内容就非常简单了

三:获取章节内容

我们先随便打开一个章节的页面,然后按F12进入开发者模式,如图:


先点击左上的鼠标图标,让后再点击要选择的内容,与之对应的标签就会在源码里高亮显示出来

这里我们可以看到章节内容在 id为nr1的标签下(select方法也可以根据id和类名来进行选择),如图:


获取到章节内容后,将其保存到一个变量中去方便进行文件写入


四:写入文件

所需模块:

import os

os模块是python中用来进行文件读写的,详细的可以自己去了解一下python3|菜鸟教程,这里只要用到open()函数

open('要打开的文件名,没有回自动创建','打开模式,我用的是wb')#wb模式为:以读写方式打开文件,若已存在则覆盖原来的文件

如图:


这里最好加一个括号,否则可能出现意想不到的错误


生成的文件就在当前脚本所在的目录下,这里我打错了格式,其实应该是txt格式的

完整代码如下:

import requestsimport osfrom bs4 import BeautifulSoupurl = 'http://m.50zw.la/book_1/5.html're_header = {'Referer':'http://m.50zw.la/chapters_1/','Upgrade-Insecure-Requests':'1','User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Mobile Safari/537.36'}#获取网页r = requests.get(url,params=re_header)#更改编码r.encoding = 'gbk'#获得BeautifulSoup对象soup = BeautifulSoup(r.text,"html.parser")#获得章节内容chapter_content = soup.select('#nr1')[0].text#打开/创建文件fo = open('1.txt','wb')fo.write((chapter_content).encode('utf-8'))print(chapter_content)#使用完后关闭文件fo.close()print('下载成功')
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
数据采集
如何利用Python爬取网络小说
从零开始学爬虫系列2:下载小说的正确姿势
使用Python爬取给定网页的所有链接(附完整代码)
Python:六步教会你使用python爬虫爬取数据
小白喜提python爬虫(一)看完即会,大神请绕路或是莅临指导!!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服