【发布时间】:2017-05-19 20:20:23
【问题描述】:
我正在使用 Python 搜索房地产网站以获取有关公寓的信息。我需要的所有信息都在存储在页面头部 (ava_data) 中的 javascript 变量中。
我在 cloud9(在线 IDE)上工作,我不希望退出它。 我正在使用 Beautiful Soup 进行刮痧。
from bs4 import BeautifulSoup
import os
import requests
url = 'http://www.seloger.com/list.htm?idtt=1&idtypebien=1,2&ci=750120,750114&tri=initial&naturebien=1&nb_pieces=2&pxmax=1250&surfacemin=40'
seloger_html = requests.get(url)
soup = BeautifulSoup(seloger_html.text,'html.parser')
path = os.getcwd() + '/COMPLET/scrap_seloger.txt'
f = open(path, 'w')
f.write(soup.prettify().encode('utf8'))
我无法始终从我的汤中的页面获取所有信息。为了验证这一点,我在 txt 文件中编写了美化汤。
当它工作时,我得到以下文件(与我在 Chrome 中的检查中得到的相同):https://ufile.io/eue0b
如果没有,我会得到以下信息:https://ufile.io/f1dnx
在数十次试验中,我只成功获得了 4-5 次正确的文件。据我所知,我第一次尝试使用 urllib.urlopen() 和第一次尝试使用 requests.get() 是正确的。据我所知,在其他时间起作用之前,我没有做过任何特别的事情。而且每次都成功了,下一次就失败了。
- 在打开 url 以获取没有 JS 的 DOM 之前,我尝试在 Chrome 上禁用 Javascript。这和以前一样。 --> 我猜这不是用 JS 添加到 DOM 的问题。
- 如前所述,我尝试了 urllib 和 requests。两者工作不一致。
- Cookie 不应该成为问题,因为会话每次都会更改。
- 由于我在 Cloud9 上,因此无法将 Selenium 与浏览器一起使用。
【问题讨论】:
-
对不起,我没看到。我现在已经添加了。
标签: javascript python beautifulsoup