美丽的汤输出{{model.attribute}}而不是普通文本

时间:2017-06-21 10:40:42

标签: python django-models beautifulsoup python-requests urllib

我的机器:

  • 列出项目

  • Ubuntu 16.04。

  • Python 3.5.2。
  • bs4 4.6.0。
  • lxml 3.8.0。

我试图解析tokopedia site。这是我的代码:

tokopedia_link = 'https://www.tokopedia.com/search?st=product&q=baju+baru'
req = urllib.request.Request(tokopedia_link)
req.add_header('User-agent', 'Mozilla 5.10')
with urllib.request.urlopen(req) as response:
    the_page = response.read()
soup = BeautifulSoup(the_page, "lxml")
print (soup.prettify())

我认为输出是django模型框架ex。 {{model.attribute}}。

enter image description here

但是,如果我保存tokopedia网站,然后将其放在apache2站点文件夹中,然后我将tokopedia_link更改为我的本地站点,它会正常输出。

有什么建议吗?

更新1:
我检查print(the_page)的输出,它打印出相同的奇怪结果。所以我的结论是打开网址时的问题。

更新2:
我尝试使用请求模块来创建与url的连接。还是一样的结果。

payload = {'st': 'product', 'q': 'baju baru'}
headers = {'user-agent': 'Mozilla/5.0'}
r = requests.post('http://www.tokopedia.com/search', params=payload, headers=headers)

更新3:
我尝试解析amazon.com,输出正常。基于django框架的网络导致了这个问题吗?我将创建基于django的网络进行研究 更新4:
我创建了基于django的网络,然后解析它,输出没什么奇怪的 更新5:
我做了更多的研究,可能是angularjs的问题。我在网站代码中看到ng-cloak ng-binding

1 个答案:

答案 0 :(得分:0)

更新6: 问题解决了。基于angularjs的web是个问题。 Urllib或请求模块无法解决连接,因此我使用selenium并且它可以工作。