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

作者&投稿:空贱 (若有异议请与网页底部的电邮联系)
python爬虫无法爬取网页完整内容?~


用python爬取网页信息的话,需要学习几个模块,urllib,urllib2,urllib3,requests,httplib等等模块,还要学习re模块(也就是正则表达式)。根据不同的场景使用不同的模块来高效快速的解决问题。
最开始我建议你还是从最简单的urllib模块学起,比如爬新浪首页(声明:本代码只做学术研究,绝无攻击用意):

这样就把新浪首页的源代码爬取到了,这是整个网页信息,如果你要提取你觉得有用的信息得学会使用字符串方法或者正则表达式了。
平时多看看网上的文章和教程,很快就能学会的。
补充一点:以上使用的环境是python2,在python3中,已经把urllib,urllib2,urllib3整合为一个包,而不再有这几个单词为名字的模块。

思路:
一、分析网页,网址架构
二、码代码并测试
三、下载并用手机打开观察结果
一、分析网页,网址架构
先随便点击首页上的一篇小说,土豆的--元尊,发现在首页上面有如下一些信息: 作者,状态,最新章节,最后更新时间,简介,以及下面就是每一章的章节名,点击章节名就可以跳转到具体的章节。
然后我们按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’ 就可以获取网站的编码方式。

因为这里是动态加载的内容,而你用普通的方法爬取的网页只能爬渠道静态的内容。

所以你需要模仿真正的浏览器,而不是仅仅请求这个页面的内容。

详细内容可以在网上搜索以下,毕竟这里我也没法给你详细解说。

加油!

python 天下第一



from urllib import request
import re

#构造请求信息,
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 \
(KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36'}

i = 2693152
j = 1
#2693854
while i <= 2693172:
print(f'正在下载第{j}章……')
url =f'http://www.yingsx.com/6_6366/{i}.html'
req = request.Request(url,headers=header)
html = request.urlopen(req).read().decode('utf-8')

pat1 =re.compile(r'<h1>(.*?)</h1>',re.I) #匹配章节
pat2 =re.compile(r'<div id="content">(.*?)<br />',re.I) #匹配正文开头
pat3 = re.compile(r' (.*?)<br />') #匹配正文中间的文字
pat4 = re.compile(r' (.*?)</div>') #匹配正文结尾

chapter = pat1.findall(html)
content_top = pat2.findall(html)
content_center = pat3.findall(html)
content_bottom = pat4.findall(html)

#把章节和内容,合并到一个列表
chapter = list(chapter[0] + '\n')
content_bottom = list(content_bottom[0] + '\n')
content = chapter + content_top +content_center +content_bottom

with open(f'E:/其他/飞升之后.txt','a') as f:
f.writelines(content)

i += 1
j += 1
print('已完成下载,请查收!')

我试了一下,用iter_content方法直接保存到文件可以。
file = open('xiaoshuo.txt','wb')
for line in res.iter_content():
file.write(line)
file.close()

你用的是pycharm吧,pycharm要配置一下,你直接用cmd试试可不可以

把网页下载本地,再从本地打开就能显示了


Python爬取笔趣阁小说返回的网页内容中没有小说内容?
一、分析网页,网址架构 先随便点击首页上的一篇小说,土豆的--元尊,发现在首页上面有如下一些信息: 作者,状态,最新章节,最后更新时间,简介,以及下面就是每一章的章节名,点击章节名就可以跳转到具体的章节。然后我们按F12,进入开发者模式,在作者上面点击右键--“检查”,可以发现这些信息都是比较...

如何通过提供一个小说名称使用python的requests库在笔趣阁中进行搜索...
这个搜索很简单,就是一个带参数的get请求。你自己拼接这个搜索请求,先抓取URL,就可以了。

有哪些不太出名,但是内容不错的网站?
二、英语学习之译学馆译学馆听名字便知道这是一个英语翻译网站。但这个翻译网站与寻常英语翻译网站不同。它聚集了诸多国内外优质视频与译者。我们不仅可以在上面看视频学英语,还可以申请成为译者赚零花钱,可谓一举两得。三、Python编程之Code Wars这两年来,Python编程以其简单易懂、拓展性强、应用场景广...

大兴安岭地区19313365537: 怎样用python爬取网页 -
柳皆碘帕: # coding=utf-8 import urllib import re# 百度贴吧网址:https://tieba.baidu.com/index.html # 根据URL获取网页HTML内容 def getHtmlContent(url):page = urllib.urlopen(url)return page.read()# 从HTML中解析出所有jpg的图片的URL # 从HTML中...

大兴安岭地区19313365537: python 怎样爬去网页的内容 -
柳皆碘帕: 用python爬取网页信息的话,需要学习几个模块,urllib,urllib2,urllib3,requests,httplib等等模块,还要学习re模块(也就是正则表达式).根据不同的场景使用不同的模块来高效快速的解决问题.最开始我建议你还是从最简单的urllib模块学起,比如...

大兴安岭地区19313365537: python爬虫怎么获取下一页的url -
柳皆碘帕: 用浏览器调试工具,如firebug 查看点击下一页时的http请求,再用python模拟就行了.

大兴安岭地区19313365537: 如何用Python爬虫抓取网页内容? -
柳皆碘帕: 首先,你要安装requests和BeautifulSoup4,然后执行如下代码. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34importrequests frombs4 importBeautifulSoupiurl ='http://news.sina.com.cn/c/nd/2017...

大兴安岭地区19313365537: 如何用 Python 爬取需要登录的网站 -
柳皆碘帕: 最近我必须执行一项从一个需要登录的网站上爬取一些网页的操作.它没有我想象中那么简单,因此我决定为它写一个辅助教程. 在本教程中,我们将从我们的bitbucket账户中爬取一个项目列表. 教程中的代码可以从我的 Github 中找到. 我们...

大兴安岭地区19313365537: 怎么用python爬取一本小说 -
柳皆碘帕: 要自己写框架,首先你要知道web框架都需要哪些,你可以看一下框架源码,或者参与到框架开源开发中.如果你要自己看源码,推荐看bottle.py,这个python的web框架只有一个文件,很方便.如果你要参与项目

大兴安岭地区19313365537: 如何用Python爬取动态加载的网页数据 -
柳皆碘帕: 动态网页抓取都是典型的办法1. 直接查看动态网页的加载规则.如果是ajax,则将ajax请求找出来给python. 如果是js去处后生成的URL.就要阅读JS,搞清楚规则.再让python生成URL.这就是常用办法2. 办法2,使用python调用webkit内核的,IE内核,或者是firefox内核的浏览器.然后将浏览结果保存下来.通常可以使用浏览器测试框架.它们内置了这些功能 3. 办法3,通过http proxy,抓取内容并进行组装.甚至可以嵌入自己的js脚本进行hook. 这个方法通常用于系统的反向工程软件

大兴安岭地区19313365537: python怎样爬取整站 -
柳皆碘帕: 如果是python2.7,利用urllib和urllib2进行爬取,对于要爬取的网站,需要做一些分析,比如要爬取的内容是登录后才看得到的,那就先要实现模拟登陆,再进行爬取.爬取时一般是发起get请求,携带的参数可以通过浏览器的开发者模式分析网页请求来查看.如果是python3,原理也差不多,用的模块稍微不一样一些

大兴安岭地区19313365537: python爬虫怎么获取到的网站的所有url -
柳皆碘帕: 首先我们可以先获取要下载图片的整个页面信息. getjpg.py #coding=utf-8 import urllibdef getHtml(url):page = urllib.urlopen(url)html = page.read()return htmlprint html Urllib 模块提供了读取web页面数据的接口,我们可以像读取本地文件一样...

大兴安岭地区19313365537: 如何利用python爬取网页数据 -
柳皆碘帕: 推荐:《pyspider 爬虫教程(二):AJAX 和 HTTP》——足兆叉虫 由于 AJAX 实际上也是通过 HTTP 传输数据的,所以我们可以通过 Chrome Developer Tools 找到真实的请求,直接发起真实请求的抓取就可以获得数据了. AJAX 一般是通过 XMLHttpRequest 对象接口发送请求的,XMLHttpRequest 一般被缩写为 XHR.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网