如何抓取使用 django 的网站

Posted

技术标签:

【中文标题】如何抓取使用 django 的网站【英文标题】:how to scrape websites that using django 【发布时间】:2019-04-06 18:24:42 【问题描述】:

我想创建一个机器人来抓取这个地址的网站:

https://1xxpers100.mobi/en/line/

但问题是当我想从这个网站获取数据时 我意识到这个网站正在使用 django,因为他们正在使用 if group_name 和其他短语等

使用这种方法创建了一个循环,它创建表行和 我想要的信息就在那里。

当我使用 python 并下载我找不到的 html 代码时 除了“code”之外的任何内容,但是当我使用 chrome 开发人员工具(检查)以及使用控制台时,我可以看到我想要的表格内的内容

如何获得包含该表格内容的 html 代码,例如 chrome 工具 从这个网站获得我想要的信息?

我获取代码的方法是使用 python :

import urllib.request

fp = urllib.request.urlopen("https://1xxpers100.mobi/en/line/")
mybytes = fp.read()

mystr = mybytes.decode("utf8")
fp.close()

【问题讨论】:

对我来说听起来你还在父对象中。您是否尝试过遍历所有返回 code 的对象的子对象?你用什么 python 库来抓取这个网站? 我不知道该怎么做!!!我怎样才能得到这个对象的孩子? 您能否将用于抓取网站和输出的代码添加到您的帖子中? 如果您在查看 HTML 时遇到这种情况,这根本不是 Django,而是一个前端框架 - 可能是 Angular。 我编辑了帖子 【参考方案1】:

这应该可以满足您的需求:

import requests
from bs4 import BeautifulSoup

r = requests.get('https://1xxpers100.mobi/en/line/')
soup = BeautifulSoup(r.content, 'lxml')

print(soup.encode("utf-8"))

这里'lmxl' 是我使用的,因为它适用于我测试过的网站。如果您遇到问题,请尝试另一个解析器。

另一个问题是默认情况下无法识别字符。所以使用utf-8阅读soup的内容

额外信息

这与django无关。 HTML 具有所谓的“树”状结构。每组标签都是其中所有子标签的父级。你只是没有深入了解树。

【讨论】:

谢谢你的解释,但还是不行 @amirhoseinmajidi 立即尝试,将endcode 部分添加到print 同样的结果 :(( 如果您访问该页面,您可以看到有一个元素为 class="events__row" 但如果您在检查页面中尝试它是不同的 当我使用 var item = document.getElementsByClassName("events__row"); 获取元素时;

以上是关于如何抓取使用 django 的网站的主要内容,如果未能解决你的问题,请参考以下文章

Django 网站有时不打印任何东西

django网站地图sitemap

Django开发的网站如何被百度更好收录

Django综合篇之网站地图sitemap

Django综合篇之网站地图sitemap

Django综合篇之网站地图sitemap