我的机器:
列出项目
Ubuntu 16.04。
我试图解析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}}。
但是,如果我保存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
。
答案 0 :(得分:0)
更新6: 问题解决了。基于angularjs的web是个问题。 Urllib或请求模块无法解决连接,因此我使用selenium并且它可以工作。