python数据采集10-采集JavaScript

举报
孙中明 发表于 2022/01/22 23:16:59 2022/01/22
【摘要】 <script> function fibonacci(a, b){ var nextNum = a + b; console.log(nextNum+" is in the Fibonacc...
<script>
function fibonacci(a, b){
var nextNum = a + b;
console.log(nextNum+" is in the Fibonacci sequence");
if(nextNum < 100){
fibonacci(b, nextNum);
}
}
fibonacci(1, 1);
</script>


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

常用JavaScript

Python 执行 JavaScript 代码的效率非常低,既费时又费力,尤其是在处理规模较大的
JavaScript 代码时。如果有绕过 JavaScript 并直接解析它的方法(不需要执行它就可以获得
信息)会非常实用,可以帮你避开一大堆 JavaScript 的麻烦事。

jQuery

是一个十分常见的库,70% 最流行的网站(约 200 万)和约 30% 的其他网站(约 2
亿)都在使用。 1 一个网站使用 jQuery 的特征,就是源代码里包含了 jQuery 入口,比如:


<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></
script>


  
 
  • 1
  • 2
  • 3
  • 4

Google Analytics

有一半的网站都在用 Google Analytics 2 ,它可能是网站最常用的 JavaScript 库和最受欢迎的
用户跟踪工具。其实,http://pythonscraping.comhttp://www.oreilly.com/ 都用了 Google
Analytics。


<!-- Google Analytics -->
<script type="text/javascript">var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-4591498-1']);
_gaq.push(['_setDomainName', 'oreilly.com']);
_gaq.push(['_addIgnoredRef', 'oreilly.com']);
_gaq.push(['_setSiteSpeedSampleRate', 50]);
_gaq.push(['_trackPageview']);
(function() { var ga = document.createElement('script'); ga.type =
'text/javascript'; ga.async = true; ga.src = ('https:' ==
document.location.protocol ? 'https://ssl' : 'http://www') +
'.google-analytics.com/ga.js'; var s =
document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s); })();
</script>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

Google地图

var marker = new google.maps.Marker({
position: new google.maps.LatLng(-25.363882,131.044922),
map: map,
title: 'Some marker text'
});


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

Ajax和动态HTML

Ajax 一样,动态 HTML(dynamic HTML,DHTML)也是一系列用于解决网络问题的
技术集合。DHTML 是用客户端语言改变页面的 HTML 元素(HTML、CSS,或者二者皆
被改变)。比如,页面上的按钮只有当用户移动鼠标之后才出现,背景色可能每次点击都
会改变,或者用一个 Ajax 请求触发页面加载一段新内容。

处理重定向

from selenium import webdriver
import time
from selenium.webdriver.remote.webelement import WebElement
from selenium.common.exceptions import StaleElementReferenceException
def waitForLoad(driver):
elem = driver.find_element_by_tag_name("html")
count = 0
while True:
count += 1
if count > 20:
print("Timing out after 10 seconds and returning")
return
time.sleep(.5)
try:
elem == driver.find_element_by_tag_name("html")
except StaleElementReferenceException:
return
driver = webdriver.PhantomJS(executable_path='<Path to Phantom Js>')
driver.get("http://pythonscraping.com/pages/javascript/redirectDemo1.html")
waitForLoad(driver)
print(driver.page_source)


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

文章来源: hiszm.blog.csdn.net,作者:孙中明,版权归原作者所有,如需转载,请联系作者。

原文链接:hiszm.blog.csdn.net/article/details/85852085

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。