python跳转到新页面、如何等待页面加载完_python urllib2 – 在抓取之前等待页面完成加载/重定向?...
我正在學(xué)習(xí)制作網(wǎng)絡(luò)抓取工具,并希望抓住TripAdvisor的個(gè)人項(xiàng)目,使用urllib2抓取html.
但是,我遇到了一個(gè)問題,使用下面的代碼,我回來的html是不正確的,因?yàn)轫撁嫠坪跣枰幻腌娭囟ㄏ?你可以通過訪問網(wǎng)址驗(yàn)證這一點(diǎn)) – 而是我得到的代碼從最初短暫出現(xiàn)的頁面.
是否有一些行為或參數(shù)要設(shè)置以確保頁面在獲取網(wǎng)站內(nèi)容之前已完全加載/重定向?
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修改內(nèi)容,但urllib2沒有JS引擎它只是GETS數(shù)據(jù),如果你在瀏覽器上禁用了javascript,你會注意到它加載的內(nèi)容與urllib2基本相同回報(bào)
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內(nèi)容 – >取消選中啟用javascript,生成相同的結(jié)果集.
Travel/Hotel API’s?
盡管有一些限制,它看起來可能會有所不同.
但是如果我們?nèi)匀恍枰褂肑S,那么我們可以使用它主要用于測試的selenium http://seleniumhq.org/,但它的簡單且具有相當(dāng)好的文檔.
希望有所幫助.
作為旁注:
>>> 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)
標(biāo)簽:python,urllib2
來源: https://codeday.me/bug/20190929/1830484.html
總結(jié)
以上是生活随笔為你收集整理的python跳转到新页面、如何等待页面加载完_python urllib2 – 在抓取之前等待页面完成加载/重定向?...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 消逝的光芒怎么扔爆竹(为什么很少有人推荐
- 下一篇: 刺激战场听脚步技巧有哪些