我正在学习制作网络抓取工具,并希望抓住TripAdvisor的个人项目,使用urllib2抓取html.

但是,我遇到了一个问题,使用下面的代码,我回来的html是不正确的,因为页面似乎需要一秒钟重定向(你可以通过访问网址验证这一点) – 而是我得到的代码从最初短暂出现的页面.

是否有一些行为或参数要设置以确保页面在获取网站内容之前已完全加载/重定向?

import urllib2

from bs4 import BeautifulSoup

bostonPage = urllib2.urlopen("http://www.tripadvisor.com/HACSearch?geo=34438#02,1342106684473,rad:S0,sponsors:ABEST_WESTERN,style:Szff_6")

soup = BeautifulSoup(bostonPage)

print soup.prettify()

解决方法:

有趣的问题不是重定向是该页面使用javascript修改内容,但urllib2没有JS引擎它只是GETS数据,如果你在浏览器上禁用了javascript,你会注意到它加载的内容与urllib2基本相同回报

import urllib2

from BeautifulSoup import BeautifulSoup

bostonPage = urllib2.urlopen("http://www.tripadvisor.com/HACSearch?geo=34438#02,1342106684473,rad:S0,sponsors:ABEST_WESTERN,style:Szff_6")

soup = BeautifulSoup(bostonPage)

open('test.html', 'w').write(soup.read())

test.html并在浏览器中禁用JS,最简单的firefox内容 – >取消选中启用javascript,生成相同的结果集.

Travel/Hotel API’s?

尽管有一些限制,它看起来可能会有所不同.

但是如果我们仍然需要使用JS,那么我们可以使用它主要用于测试的selenium http://seleniumhq.org/,但它的简单且具有相当好的文档.

希望有所帮助.

作为旁注:

>>> import urllib2

>>> from bs4 import BeautifulSoup

>>>

>>> bostonPage = urllib2.urlopen("http://www.tripadvisor.com/HACSearch?geo=34438#02,1342106684473,rad:S0,sponsors:ABEST_WESTERN,style:Szff_6")

>>> value = bostonPage.read()

>>> soup = BeautifulSoup(value)

>>> open('test.html', 'w').write(value)

标签:python,urllib2

来源: https://codeday.me/bug/20190929/1830484.html

python跳转到新页面、如何等待页面加载完_python urllib2 – 在抓取之前等待页面完成加载/重定向?...相关推荐

  1. python爬取二级页面_爬虫代码改进(二)|多页抓取与二级页面

    本文是下面两篇文章的续篇 本系列包括如下内容抓取豆瓣top250一页多个字段 整合成列表 存储为json文件 定义成函数形式 多页抓取之构造url 多页抓取之翻页 抓取二级页面数据 通过生成器优化代码 ...

  2. C#利用phantomJS抓取AjAX动态页面

    在C#中,一般常用的请求方式,就是利用HttpWebRequest创建请求,返回报文.但是有时候遇到到动态加载的页面,却只能抓取部分内容,无法抓取到动态加载的内容. 如果遇到这种的话,推荐使用phan ...

  3. 蜘蛛爬取网页服务器卡死,总结搜索引擎蜘蛛抓取不到页面的原因及改善措施

    在诊断过程中,我们会遇到这样的问题.有些网页内容很好,用户可以正常访问.然而,搜索引擎蜘蛛只是不能正常访问和抓取它们,导致搜索结果覆盖率不足,这是百度等搜索引擎和网站的损失.百度称之为"抢夺 ...

  4. 使用java的html解析器jsoup和jQuery实现一个自动重复抓取任意网站页面指定元素的web应用...

    在线演示  本地下载 如果你曾经开发过内容聚合类网站的话,使用程序动态整合来自不同页面或者网站内容的功能肯定对于你来说非常熟悉.通常使用java的话,我们都会使用到一些HTML的解析,例如,httpp ...

  5. php抓取天猫商品,php curl 怎么抓取天猫商品页面?

    抓取不到页面 回复讨论(解决方案) $ret = file_get_contents("http://item.taobao.com/item.htm?id=2315770603" ...

  6. php抓取天猫商品,phpcurl怎么抓取天猫商品页面?

    输出到屏幕上.curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 运行cURL,请求网页$data = curl_exec($curl); // 关闭U ...

  7. python爬虫实例手机_Python爬虫实现爬取京东手机页面的图片(实例代码)

    实例如下所示: __author__ = 'Fred Zhao' import requests from bs4 import BeautifulSoup import os from urllib ...

  8. webdriver 等待页面加载完成_Python爬虫,登陆神器Selenium等待(waits)页面加载的三种方法...

    网页常常会因为网络原因,程序问题等等导致打开网页慢,一直在那里打圈圈. 出现这种情况时网页里的很多元素就没有加载完成,如果你刚好要定位的元素没有加载完,这时定位的话程序就会抛出异常. 所以程序里要加入 ...

  9. python3 爬虫第二步Selenium 使用简单的方式抓取复杂的页面信息

    Selenium 简介 该系列专栏上一篇爬虫文章点击这里. 网站复杂度增加,爬虫编写的方式也会随着增加.使用Selenium 可以通过简单的方式抓取复杂的网站页面,得到想要的信息. Selenium ...

最新文章

  1. AWS自动化合规slide
  2. C语言 | 编程实现4
  3. 并联系统的失效率公式推导_电容的串并联计算方法
  4. java 代码重用_Java 代码重用:功能与上下文重用
  5. Hologres+Flink流批一体首次落地4982亿背后的营销分析大屏
  6. python re正则查找_python正则表达式 - re
  7. jpa 自定义sql if_SpringBoot整合JPA实现多数据源及读写分离
  8. php全站文章搜索,Discuz X3.1全站文章全文检索的实现方法
  9. 深圳罗湖区:拟重点发展区块链金融技术 推动数字人民币国际合作
  10. 计算机组成大学考试,计算机组成原理本科期末试题4套含答案(大学期末复习资料)(21页)-原创力文档...
  11. HTML5的离线存储有几种方式?
  12. ORB-SLAM2双目开源框架 (4) LoopClosing解析
  13. Homography和warpPerspective
  14. 关于使用腾讯云播放器的遇到的坑
  15. 社交网络时代下的网络营销
  16. 人工智能--人类的二次进化
  17. 剑指Offer读书笔记(持续更新中)
  18. WKWebView 设置 UserAgent
  19. 大学MOOC现代礼仪试题用哪个搜题软件好?里面的题库难吗?
  20. ThinkPHP实现定时执行任务的两种方法

热门文章

  1. const int是什么类型_C++的const语义
  2. python基础内容_python基础-python介绍
  3. Android开发之gradle重命名aar包的写法
  4. php 遍历 目录,PHP采用自定义函数实现遍历目录下所有文件的方法
  5. php+insert+into+注入,PHP+MySQL之Insert Into数据插入用法分析
  6. ajax 传递参数中文乱码解决办法
  7. 浅谈Java中的==和equals
  8. Centos kvm虚拟sever
  9. 写程序和做网店的压力都很大
  10. [Android学习笔记]使用ListView