0
我米使用此代码从链接再杀一些数据https://website.grader.com/results/www.dubizzle.com的Python beautifulsoup用于web取出负载数据标签负载的实际页面之前
的代码如下
#!/usr/bin/python
import urllib
from bs4 import BeautifulSoup
from dateutil.parser import parse
from datetime import timedelta
import MySQLdb
import re
import pdb
import sys
import string
def getting_urls_of_all_pages():
url_rent_flat='https://website.grader.com/results/dubizzle.com'
every_property_in_a_page_data_extraction(url_rent_flat)
def every_property_in_a_page_data_extraction(url):
htmlfile=urllib.urlopen(url).read()
soup=BeautifulSoup(htmlfile)
print soup
Sizeofweb=""
try:
Sizeofweb= soup.find('span', {'data-reactid': ".0.0.3.0.0.3.$0.1.1.0"}).text
print Sizeofweb.get_text().encode("utf-8")
except StandardError as e:
error="Error was {0}".format(e)
print error
getting_urls_of_all_pages()
的那部分HTML对此我提取是如下
快: https://www.dropbox.com/s/7dwbaiyizwa36m6/5.PNG?dl=0
代码:
<div class="result-value" data-reactid=".0.0.3.0.0.3.$0.1.1">
<span data-reactid=".0.0.3.0.0.3.$0.1.1.0">1.1</span>
<span class="result-value-unit" data-reactid=".0.0.3.0.0.3.$0.1.1.1">MB</span>
</div>
问题: 问题是,该网站大约需要10-15秒加载其具有我想提取在代码中提到的代码的HTML源文件。
当代码使用行htmlfile=urllib.urlopen(url).read()
加载页面的html,我认为它加载了10-15秒之前链接的预加载html。
如何在代码中暂停并让它在15+秒之后加载数据,以便正确的html与标记我想要在程序中提取负载?
哪里在代码我应该嵌入它? – info
你能帮忙试图嵌入代码吗? – info
基本上你必须用Selenium WebDriver替换urllib来获取url并等待页面加载。看看[这里](http://selenium-python.readthedocs.io/waits.html) – user6399774