抓取代理IP遇到的javascript解析问题

1. 问题描述:

利用脚本去自动从下面的这个网站抓取一些proxy ip:

[http://www.samair.ru/proxy/ip-address-01.htm]

[http://www.samair.ru/proxy/ip-address-02.htm]

[http://www.samair.ru/proxy/ip-address-03.htm]

...

[http://www.samair.ru/proxy/ip-address-30.htm]

 

通过curl跟awk,sed结合去抓取解析页面信息来获取代理IP跟Port

 

问题是抓取下来的结果中含有javascript代码如下:

110.77.204.131<script type="text/javascript">document.write(":"+u+w+u+w)</script>

从上面的代码可以看到,port变成了一些javascript变量输出。

 

通过firebug去分析,原来页面include了一个js文件,其中就一个函数来定义了每个英文字母对应的数字值。

 

再进一步调查,发现这个网站提供了几十页的proxy ip,但是每一页包含的js字符转换函数都不同。

 

为了让脚本能获取到正确的Port数值,必须解决如何解析这个js函数来获取最终的字母数字值对应表。

 

2. 解决方案:

利用Rhino Shell[https://developer.mozilla.org/en-US/docs/Rhino/Shell]来加载获取这个函数结果,在这个函数最后加上以下代码,把其中的变量名跟对应值输出:

    for(name in this) {print(name+\":\"+this[name]);}

 

测试结果如下:

$> rhino -f temp.js 

t:5

h:4

n:7

y:3

o:8

j:2

m:6

g:0

l:1

r:9

 

3. 测试跟源码:

getProxyList.sh:

#!/bin/bash

 

test_url=$1

 

temp_js="$(date +%Y_%m_%d_%H_%M_%S).js"

 

page_content=`curl -s -G "${test_url}"`

 

hostName=`printf "%s" "${test_url}" | sed -n -e '{s/.*\(http:\/\/\\)\([^\/]*\).*/\1\2/g;p;}'`

 

js_path=`printf "%s\n" "${page_content}" | \

sed -n -e '/type="text\/javascript"/p' | \

sed -n -e '/src="\/js\/[0-9]*\.js"/p' | \

sed -n -e '{s/.*src="\([^"]*\)".*/\1/g;p;}'`

 ## 获取JS内容

js_content=`curl -s -G "${hostName}${js_path}"`

 

getAllVarJs="for(name in this) {print(name+\":\"+this[name]);}"

 

printf "%s\n%s" "${js_content}" "${getAllVarJs}" > "${temp_js}"

 

#rhino运行JS,并获取字符数值对应结果

sed_sub_str=`rhino -f "${temp_js}" | \

awk -F ':' '

{

printf"s/%s/%s/g;",$1,$2;

}END{printf"\n"}'`

 

# printf "%s\n" "${sed_sub_str}"

 

printf "%s\n" "${page_content}" | \

awk '{printf"%s",$0}END{printf"\n"}'  | \

sed -n -e '{s/.*<table id="proxylist">\(.*\)<\/table>.*/\1/g;p;}' | \

sed -n -e '{s/^[[:blank:]][[:blank:]]*//g;p;}' | \

sed -n -e '{s/>[[:blank:]][[:blank:]]*</></g;p;}' | \

sed -n -e '{s/\(<\/tr>\)/\1\n/g;p;}' | \

sed -n -e '{/script/p}' | \

sed -n -e '{s/<tr>//g;s/<\/tr>//g;s/<\/td>//g;p;}'  | \

awk -F '<td>' '{print $2}' | \

sed -n -e '{s/\(.*\)<script.*write(":"\(.*\)).*/\1:\2/g;s/+//g;p;}' | \

sed -n -e '{'"${sed_sub_str}"'p;}'

 

rm -f "${temp_js}"

 

$> sh getProxyList.sh http://www.samair.ru/proxy/ip-address-02.htm

110.208.26.192:9000

110.208.26.204:9000

110.208.26.221:9000

110.208.27.111:9000

110.208.27.118:9000

110.208.27.142:9000

110.208.27.60:9000

110.208.27.75:9000

110.5.104.238:80

110.78.162.238:3128

111.1.32.51:82

111.119.161.46:80

...

 

4. 进一步研究:

以上解决方案是需要手工分析对应代码,找到对应的JS方法来做解析分析。

应该有更加智能自动的方法来模拟firefox浏览器直接生成js运行后的html代码。

如有同学知道这类工具,请回复。

 

 

 

 

 

python爬取快代理IP 使用python爬取快代理IP 阅读详情

相关推荐

从零构建百度新闻热搜爬虫:Python实战与反爬破解全指南

在信息爆炸的时代,新闻热搜榜是公众情绪与热点事件的“温度计”。百度作为中国最大的搜索引擎,其新闻热搜榜单(通常位于)聚合了全网最热门的资讯,每日活跃用户超亿级。对于数据分析师、舆情监控从业者或Python学习者而言,爬取百度新闻热搜既是练手的好项目,也是获取实时数据的实用技能。但现实是:百度热搜页面并非简单的静态HTML,而是由JavaScript动态渲染的SPA(单页应用)。传统requests库直接请求只能拿到空骨架,无法获取热搜数据。因此,本篇博客将:使用模拟真实浏览器渲染结合。

2201_76125261的博客 348

说说 JavaScript 对用户代理的检测技术(附完整源代码)

用户代理检测指的是,检测用户代理字符串来确定用户实际使用的浏览器。在服务端,用户代理检测是一种常见且广为让人接受的方式;但是,在客户端,用户代理检测是一种万不得已才使用的方法,它经常被放在能力检测和怪癖检测之后。可以通过 navigator.userAgent 得到用户代理字符串。用户代理经常跟电子欺骗联系在一起,因为浏览器会在自己的用户代理字符串中加入一些错误或者误导性的信息,来欺骗服务器。1 用

读万卷书,行万里路 3308

写Python爬虫又被屏蔽了,你现在需要一个稳定的代理IP

住宅 IP 地址是与物理设备绑定的 IP 地址,与动态 IP 不同,服务器会将住宅 IP 识别为真实的人,安全性和稳定性更高,也由于该原因,我们可以将自己的位置变为世界各个国家地区的家庭地址,从而实现从指定位置访问目标站点,避免地理限制。如果你用了住宅代理 IP,玩游戏都能解除锁区限制。为什么要用住宅代理。.........

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 2万+

html远程查看,通过JavaScript实现获取远程html到当前页面中

通过JavaScript实现获取远程html到当前页面中发布时间:2020-05-09 13:45:11来源:亿速云阅读:787作者:Leah今天小编就为大家带来一篇JavaScript实现获取远程html到当前页面中的文章。小编觉得挺不错的,为此分享给大家做个参考。一起跟随小编过来看看吧。html代码javascript代码function clientSideInclude(id, url) ...

weixin_34547628的博客 669

未隔离电源设备使用usb转串口调试导致串口模块爆炸烧坏事故记录

这个事就发生在前两天,我们公司的wifi模块被客户用到了咖啡机上,客户寄了一台整机给我们协助调试,还送了几包咖啡豆,本想着还能打个咖啡喝一喝的,但就在咖啡机刚寄过来第一天,就出事了。而这个事故的发生,竟然仅仅是因为同事接了个串口模块到电脑调试打印导致的。谁也想不到,这个3.3V的供电的wifi模块居然还有这么大的威力。直接将usb转TTL串口模块的转换芯片给爆开了,咖啡机也给弄坏了,据同事描述当时情况就只见到一片火光和一声巨响,状况比较惨烈,所幸的是笔记本电脑没有烧坏,但是直接给崩蓝屏了。 ...

fangye945a的博客 6193

Qt Design Studio 入门指南:从零开始打造炫酷UI(详细+实用+轻松上手)

本文是Qt Design Studio的详细入门指南,旨在帮助UI设计新手从零开始轻松打造炫酷界面。文章系统介绍了软件的核心概念、安装步骤、主界面解析,并通过创建一个完整的登录界面实例,手把手教学如何拖拽组件、设置属性、添加交互状态与动画。同时,分享了创建自定义组件、管理资源以及提升效率的实用技巧与常见问题解决方案,让读者能够快速上手并应用于实际项目开发。

devops8pract的博客 589

利用代理页面解决html iframe跨域访问网站问题

利用代理页面解决html iframe跨域访问网站问题 谭飞 2014-6-9     【问题描述】 在邹县的数字邹电项目中由于许多页面都是连接到其他项目的页面。由菜单连接到其他域页面,再在其他域页面上调用本项目的js用iframe显示其他域的页面,这样就会涉及到安全性问题即跨域问题。报错信息如下 浏览器控制台跨域报错信息:Unsafe JavaScript attempt to ac

笔尖上的tandaly 1257

ComfyUI 的 LoRA 训练:素材打标签与调优全攻略

标签是 LoRA 训练的"地基"——地基打不牢,后续调参再精细也难出好效果。记住:标签要"少而精",聚焦独特点,用触发词控效果。下一篇我们将讲解参数设置,让你的优质标签发挥最大价值~

2301_78150483的博客 3099

js怎么抓取当前html页面的内容,JavaScript实现获取远程的html到当前页面中

html代码javascript代码function clientSideInclude(id, url) {var req = false;// Safari, Firefox, 及其他非微软浏览器if (window.XMLHttpRequest) {try {req = new XMLHttpRequest();} catch (e) {req = false;}} else if (win...

weixin_34791959的博客 1074

从零开始STM32cubeide学习

使用的是正点原子的精英版,单片机是STM32F103ZET6,详细讲解完成跑马灯实验

weixin_44077208的博客 2281

置顶必读(1) | 《YOLOv26实战:从入门到深度优化》专栏导读与完整目录导航(持续更新中)

🏆 本文收录于 《YOLOv26实战:从入门到深度优化》 专栏。 本专栏系统梳理并持续复现 YOLOv26 官方特性、核心改进、多任务支持、部署优化与行业落地,内容坚持 持续更新 + 深度拆解 + 工程落地导向,不仅讲“怎么用”,更讲“为什么这样设计、如何真正落地到项目中”。

**My Coding Family** 9万+

Python实战:拼多多数据抓取与反爬策略全解析

网络爬虫作为数据采集的核心技术,通过模拟浏览器行为自动获取网页信息,其原理基于HTTP协议与HTML解析。在数据驱动的商业决策中,爬虫技术能够高效获取市场情报与竞品数据,具有重要价值。电商平台数据抓取是典型应用场景,尤其对于反爬机制完善的平台如拼多多,需综合运用请求模拟、动态渲染与参数逆向等技术。本文聚焦Python爬虫实战,详细拆解如何应对请求头校验、IP限制、参数签名等反爬策略,并融入代理池管理与自动化浏览器等热词,构建稳定高效的数据采集管道,为市场分析、价格监控等场景提供解决方案。

weixin_30470643的博客 501

基于Qt的工业组态软件开发:图形绘制与TCP通讯实现

在数据接收时,通过 readyRead 信号触发解析函数,校验数据包完整性后提取有效数据,并更新对应图形元素的状态,例如根据温度值改变矩形的填充色,实现设备状态可视化。测试阶段,我们将软件部署到Windows工控机,连接PLC设备进行通讯测试,结果表明图形元素响应及时,TCP数据传输稳定,满足工业现场的基本需求。综上所述,基于Qt的组态软件开发,核心在于利用 QGraphicsView 框架实现图形元素的灵活绘制与管理,结合 QTcpSocket 完成工业数据的可靠交互。

谢谢大家的关注和点赞!这里只有纯纯的知识干货,没有一句废话。希望能实实在在帮到大家~要是觉得有用,别忘了给我点支持哟,你 273

Python爬虫实战:招聘网站数据抓取与反爬策略解析

网络爬虫作为数据采集的核心技术,其工作原理是通过模拟浏览器行为自动访问网页并提取结构化信息。这项技术的关键价值在于能将海量、分散的非结构化网络数据转化为可用于分析的资源,广泛应用于市场研究、竞品分析和人才洞察等领域。在招聘数据分析场景中,爬虫技术能高效获取职位、薪资和技能要求等关键字段,为人才市场趋势研究提供数据基础。本文聚焦于使用Python的Requests、BeautifulSoup4等库构建健壮的爬虫引擎,并深入探讨针对动态渲染页面和IP封锁等反爬机制的应对策略,涵盖从网页结构解析、数据清洗到并发优

weixin_33874713的博客 432

SeaTunnel 实战:Apache SeaTunnel Web 安装与部署

复制引擎服务中配置文件到 Web 配置目录下面。就是上述 application.yml 文件中配置的端口号。默认是从 mvvm 下载,可能下载速度很慢,我这边安装了 Maven 并且配置了阿里云仓库,因此将脚本中的。如果环境变量有冲突需要改下环境变量的名字以及 init_sql.sh 中的环境变量的名字,可以加上前缀。初始化数据库有两种方式,一是使用官方提供的初始化脚本,二是直接运行初始化 SQL。初始化数据库的脚本,使用之前需要修改。

SmartSi 3911

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

爬虫技术现状分析

需求 万维网上有着无数的网页,包含着海量的信息,无孔不入、森罗万象。但很多时候,无论出于数据分析或产品需求,我们需要从某些网站,提取出我们感兴趣、有价值的内容,但是纵然是进化到21世纪的人类,依然只有两只手,一双眼,不可能去每一个网页去点去看,然后再复制粘贴。所以我们需要一种能自动获取网页内容并可以按照指定规则提取相应内容的程序,这就是爬虫。 原理 传统爬虫从一个或若干初始网页的URL开始,...

编程哲学家的专栏 5300

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

批量爬取百度贴吧里的标题及链接

可以发现,我们需要的数据在源码中被注释掉了,所以我们需要处理一下。 import re import requests from lxml import etree # 指定url url='https://tieba.baidu.com/f?ie=utf-8&kw=python' # 参数 # 请求头 header = { 'Upgrade-Insecure-Requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10..

qq_53318060的博客 1249

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Python爬虫简单入门教程,从零基础入门到精通,从看这篇开始!

这篇 Python 爬虫教程主要讲解以下 5 部分 了解网页结构; 使用 requests 库抓取网站数据; 使用 Beautiful Soup 解析网页; 清洗和组织数据; 爬虫攻防战;

m0_59162248的博客 960

Python爬虫简单入门教程

这篇 Python 爬虫教程主要讲解以下 5 部分 了解网页结构; 使用 requests 库抓取网站数据; 使用 Beautiful Soup 解析网页; 清洗和组织数据; 爬虫攻防战;

m0_59162248的博客 1203

Python爬虫实战:多源旅游网站数据采集与反爬策略详解

网络爬虫作为数据采集的核心技术,其原理是通过模拟浏览器行为向目标服务器发送HTTP请求并解析返回的HTML文档,从而自动化提取结构化信息。这项技术的价值在于能够高效获取公开网络数据,为数据分析、市场研究、价格监控等应用场景提供数据支撑。在实际工程实践中,开发者需要应对网站反爬机制、动态内容加载、数据清洗等挑战。本文以旅游行业为切入点,详细解析了如何构建一个健壮的多源数据采集系统,其中涉及代理IP池管理、请求头伪装等关键反爬策略,并分享了使用Playwright处理JavaScript动态渲染页面的实战经验。

weixin_30729609的博客 399

Python之JavaScript逆向系列——1、品易IP代理的使用

Python之JavaScript逆向系列——1、品易IP代理的使用

红目香薰 2217

探索网络世界:IP代理与爬虫技术的全景解析

本篇技术博客深入探讨了IP代理与爬虫技术的核心概念、应用策略及其在网络数据抓取和隐私保护领域的重要性。通过详细介绍IP代理的不同类型、爬虫技术的设计与实现、反爬虫策略、数据解析技巧、API抓取方法、分布式爬虫架构、网络安全与隐私保护措施、以及机器学习和JavaScript渲染在爬虫中的应用,本文旨在为读者提供一个全面的知识框架,从而帮助他们更好地理解和应用这些技术以解决实际问题。欢迎来到IP代理与爬虫技术专栏,一个专注于最前沿网络技术、隐私保护及数据抓取技术的深度解析平台。

猫头虎技术团队:授渔优于赠鱼,兴趣引领智慧,探索之乐尤显珍贵。商务合作+:Libin9iOak ,万粉变现+:优快云WF,猫头虎承诺每年免费为100名C站创作者做账号流量诊断服务!全网搜:猫头虎技术团队,点击文章底部名片或直接私信我一切皆可谈,快找虎哥! 6516

小白上手代理网络,搭建自己的数据抓取工具

IPIDEA是业界领先的企业级代理网络服务平台,专注为全球开发者和企业用户提供高质量、高稳定性的代理IP解决方案。

商务合作欢迎私信我 16万+

node.js.抓取代理ip(提供参考)

免费的代理IP往往存在可用性低、安全性差等问题,并且很多网站有反爬机制,可能会阻止频繁抓取行为,大家在实际情况中需按照实际问题分析解决。加载内容后,按照假设的HTML结构(示例中简单假设了表格结构来存放IP和端口信息)去提取IP地址和对应的端口信息,并将它们组合成对象存放到。不同的网站页面结构差异很大,你需要准确分析对应网站的HTML结构来调整。来解析网页返回的HTML数据(它可以让我们在。的选择器等解析逻辑,确保能准确提取到信息。回调中打印出抓取到的代理IP列表。数组中,最后返回这个数组。

stupidbp的博客 761
上一篇: ubuntu, eclipse indigo subclipse JavaHL版本错误
cncomkyle
博客等级 码龄19年 0粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值