为什么python爬虫抓取网页内容,抓取到的是一堆代码,没有js的内容

为什么python爬虫抓取网页内容,抓取到的是一堆代码,没有js的内容,第1张

mport urllibrequest

import re

def getHtml(url):

page = urllibrequesturlopen(url)

html = pageread()

html = htmldecode('GBK')

return html

def getMeg(html):

reg = recompile(r'')

meglist = refindall(reg,html)

for meg in meglist:

with open('outtxt',mode='a',encoding='utf-8') as file:

filewrite('%s\n' % meg)

if __name__ == "__main__":

html = getHtml(url)

getMeg(html)

纯粹前端的js 是不能 跨域 获取 cookie的

xxxcom 的js 代码 只能得到 xxxcom的cookie,拿不到 yyycom

当然如果你有办法 在 yyycom 写入受到自己控制的 html文件,你就可以写代码去拿到 对应的cookie,但看你的需求 应该你没有yyycom 的权限

所以 要结合其他方案,推荐一下两种:

使用 electron ,electron 你可以认为是受js控制的浏览器引擎,所以你可以用它访问 yyycom 拿到cookie,再接着做你的事情

或者 使用 puppeteer(Google 官方出品的 headless Chrome node 库)

Puppeteer 提供了一系列的 API,可以在无 UI 的情况下调用 Chrome 的各种功能,适用于爬虫、自动化处理等各种情景。

用神箭手云爬虫,完全在云上编写和执行爬虫,不需要配置任何开发环境,快速开发快速实现。

简单几行 javascript 就可以实现复杂的爬虫,同时提供很多功能函数:反反爬虫、 js 渲染、数据发布、图表分析、反防盗链等,这些在开发爬虫过程中经常会遇到的问题都由神箭手帮你解决。

主页预览

文章内容直接get主页就可以拿到,页面内容太长,这里就不贴具体内容了,chrome自行查看。URL结构也非常简单,只需要修改后面的文章id就可以。

============ 2019年8月10日更新

一点资讯的搜索接口有调整,新的搜索接口:

Post 请求

请求url:

参数中的display是搜索的关键词

请求头:

============ 旧版搜索(已经不能使用)

搜索界面预览 (请使用chrome的手机模拟)

搜索接口

这个接口返回的是输入框输入之后提示出来的信息,这个其实要比点击搜索之后给出的要好,因为这个里面给出的信息很多。大概结构是这样:

这里备用一下完整的参数请求,实际上大胆去掉后面两个参数,并不影响我们获取内容。

在搜索界面会提示当前的热搜关键词, 接口页面:

热搜接口

基础url

请求参数

我们不断的下拉,查看异步请求,filter设置为 channel

然后对比请求发现参数的规律如下

其他参数都是固定值。所以我们需要追踪_spt这个参数。全局搜索一下_spt,只有一个文件中发现了这个字符串

定位到这个函数中function(e, t, i), 我们给函数打上一堆断点,然后F5刷新页面,稍等一会,页面会加载到断点的位置暂停,我们按F8可以继续执行。然后不断的按下F8,我们可以看到各个变量的值,

执行到59行时:

这时候拿到channel_id,保存在变量t中,这里拿到的t是best,当然,不同的广场标签对应channel不一样。这个id明文传输在参数中。

继续F8,我们开始进入到第一个循环中,变量o的初始值为sptoken,循环会把arguments中除了第一个字符串全部追加的o的后面,arguments中有四个字符串

看下这几个字符串都是什么,

现在就差后面两个参数,我们不断上划加载数据然后重复F8的过程看看数据的变化:

可以看到后面两个参数就是起止数目,参数中的cstart和cend。于是到此为止,可以说基本破解成功了。我们写个python函数:

对比一下网站的参数:

搞定!

这里有个地方很有意思啊, 该网站对web的访问控制是通过明文参数控制的

个人首页

然后,链接地址就出现在了对应的标签中。很容易找到。

以上就是关于为什么python爬虫抓取网页内容,抓取到的是一堆代码,没有js的内容全部的内容,包括:为什么python爬虫抓取网页内容,抓取到的是一堆代码,没有js的内容、前端js爬虫、如果网页内容是由javascript生成的,应该怎么实现爬虫等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9638964.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存