如何抓取使用 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 的网站的主要内容,如果未能解决你的问题,请参考以下文章