当前位置:首页 » 小说排行 » 可以爬虫小说排行榜的网站

可以爬虫小说排行榜的网站

发布时间: 2023-08-04 10:53:16

① 怎么用python爬sf轻小说文库的vip章节小说

你需要先购买vip,不然的话是爬不了的,除非系统有漏洞,记住爬虫不是万能的
步骤一:研究该网站
打开登录页面
进入以下页面 “”。你会看到如下图所示的页面(执行注销,以防你已经登录)

仔细研究那些我们需要提取的详细信息,以供登录之用
在这一部分,我们会创建一个字典来保存执行登录的详细信息:
1. 右击 “Username or email” 字段,选择“查看元素”。我们将使用 “name” 属性为 “username” 的输入框的值。“username”将会是 key 值,我们的用户名/电子邮箱就是对应的 value 值(在其他的网站上这些 key 值可能是 “email”,“ user_name”,“ login”,等等)。

2. 右击 “Password” 字段,选择“查看元素”。在脚本中我们需要使用 “name” 属性为 “password” 的输入框的值。“password” 将是字典的 key 值,我们输入的密码将是对应的 value 值(在其他网站key值可能是 “userpassword”,“loginpassword”,“pwd”,等等)。

3. 在源代码页面中,查找一个名为 “csrfmiddlewaretoken” 的隐藏输入标签。“csrfmiddlewaretoken” 将是 key 值,而对应的 value 值将是这个隐藏的输入值(在其他网站上这个 value 值可能是一个名为 “csrftoken”,“ authenticationtoken” 的隐藏输入值)。列如:“”。

最后我们将会得到一个类似这样的字典:

payload = {
"username": "<USER NAME>",
"password": "<PASSWORD>",
"csrfmiddlewaretoken": "<CSRF_TOKEN>"
}

请记住,这是这个网站的一个具体案例。虽然这个登录表单很简单,但其他网站可能需要我们检查浏览器的请求日志,并找到登录步骤中应该使用的相关的 key 值和 value 值。
步骤2:执行登录网站
对于这个脚本,我们只需要导入如下内容:

import requests
from lxml import html

首先,我们要创建 session 对象。这个对象会允许我们保存所有的登录会话请求。

session_requests = requests.session()

第二,我们要从该网页上提取在登录时所使用的 csrf 标记。在这个例子中,我们使用的是 lxml 和 xpath 来提取,我们也可以使用正则表达式或者其他的一些方法来提取这些数据。

login_url = ""
result = session_requests.get(login_url)

tree = html.fromstring(result.text)
authenticity_token = list(set(tree.xpath("//input[@name='csrfmiddlewaretoken']/@value")))[0]

**更多关于xpath 和lxml的信息可以在这里找到。
接下来,我们要执行登录阶段。在这一阶段,我们发送一个 POST 请求给登录的 url。我们使用前面步骤中创建的 payload 作为 data 。也可以为该请求使用一个标题并在该标题中给这个相同的 url 添加一个参照键。

result = session_requests.post(
login_url,
data = payload,
headers = dict(referer=login_url)
)

步骤三:爬取内容
现在,我们已经登录成功了,我们将从 bitbucket dashboard 页面上执行真正的爬取操作。

url = ''
result = session_requests.get(
url,
headers = dict(referer = url)
)

为了测试以上内容,我们从 bitbucket dashboard 页面上爬取了项目列表。我们将再次使用 xpath 来查找目标元素,清除新行中的文本和空格并打印出结果。如果一切都运行 OK,输出结果应该是你 bitbucket 账户中的 buckets / project 列表。

Python

1
2
3
4
5

tree = html.fromstring(result.content)
bucket_elems = tree.findall(".//span[@class='repo-name']/")
bucket_names = [bucket.text_content.replace("n", "").strip() for bucket in bucket_elems]

print bucket_names

你也可以通过检查从每个请求返回的状态代码来验证这些请求结果。它不会总是能让你知道登录阶段是否是成功的,但是可以用来作为一个验证指标。
例如:

Python

1
2

result.ok # 会告诉我们最后一次请求是否成功
result.status_code # 会返回给我们最后一次请求的状态

就是这样。

② Python爬取笔趣阁小说返回的网页内容中没有小说内容

思路:
一、分析网页,网址架构
二、码代码并测试
三、下载并用手机打开观察结果
一、分析网页,网址架构
先随便点击首页上的一篇小说,土豆的--元尊,发现在首页上面有如下一些信息: 作者,状态,最新章节,最后更新时间,简介,以及下面就是每一章的章节名,点击章节名就可以跳转到具体的章节。
然后我们按F12,进入开发者模式,在作者上面点击右键--“检查”,可以发现这些信息都是比较正常地显示。
再看章节名称,发现所有的章节都在<div id="list"> 下面的 dd 里面,整整齐齐地排列好了,看到这种情形,就像点个赞,爬起来舒服。
分析完首页,点击章节名称,跳转到具体内容,发现所有的正文都在 <div id="content"> 下面,巴适的很
那么现在思路就是,先进入小说首页,爬取小说相关信息,然后遍历章节,获取章节的链接,之后就是进入具体章节,下载小说内容。
OK,开始码代码。
二、码代码并测试
导入一些基本的模块:
import requests
from bs4 import BeautifulSoup
import random
2.先构建第一个函数,用于打开网页链接并获取内容。
使用的是requests 包的request.get ,获取内容之后用‘utf-8’ 进行转码。
这里我之前有个误区就是,以为所有的网站都是用 'utf-8' 进行转码的,但是实际上有些是用'gbk' 转码的,如果随便写,就会报错。
网络之后,只要在console 下面输入 ‘document.charset’ 就可以获取网站的编码方式。

热点内容
小说念武记最新章节 发布:2023-08-31 22:07:07 浏览:107
求系统类小说 发布:2023-08-31 22:04:10 浏览:291
开火箭的小说短篇 发布:2023-08-31 22:02:08 浏览:96
女主角叫沈瑾年的小说 发布:2023-08-31 22:01:11 浏览:932
有声小说仙妻有喜爆军蛇王燎上瘾 发布:2023-08-31 21:52:57 浏览:793
小说古龙武侠书 发布:2023-08-31 21:52:07 浏览:713
贾平凹有声小说藏地密码 发布:2023-08-31 21:48:34 浏览:31
女主叫家人全名玄幻小说 发布:2023-08-31 21:44:18 浏览:755
重生洛天小说 发布:2023-08-31 21:37:22 浏览:420
玄幻小说里的法力是什么 发布:2023-08-31 21:30:05 浏览:162