我按照BeautifulSoup教程从网站上抓取了信息,我需要从主题标签研究页面获取instagram帖子的链接,但我没有任何结果,
url_tag = 'https://www.instagram.com/explore/tags/food'
response_url_tag = get(url_tag)
html_soup = BeautifulSoup(response_url_tag.text, 'html.parser')
#print(html_soup.prettify())
for link in html_soup.find_all('a'):
print(link.get('href'))
答案 0 :(得分:0)
BeautifulSoup将无法做到这一点。原因是,就像在许多现代Web应用程序中一样,您在浏览器检查器中能够看到的链接不在html代码中,而是在浏览器中使用javascript呈现。
如果您使用tag.js
$(document).on("turbolinks:load", function() {
var selectizeCallback = null;
$(".tag-modal").on("hide.bs.modal", function(e) {
if (selectizeCallback != null) {
selectizeCallback();
selecitzeCallback = null;
}
$("#new_tag").trigger("reset");
// $.rails.enableFormElements($("#new_tag"));
Rails.enableElement($('#new_tag')[0]);
});
$("#new_tag").on("submit", function(e) {
e.preventDefault();
$.ajax({
method: "POST",
url: $(this).attr("action"),
data: $(this).serialize(),
success: function(response) {
selectizeCallback({value: response.id, text: response.name});
selectizeCallback = null;
$(".tag-modal").modal('toggle');
}
});
});
$(".selectize").selectize({
maxItems: 5,
create: function(input, callback) {
selectizeCallback = callback;
$(".tag-modal").modal();
$("#tag_name").val(input);
}
});
});
网址,则在下载的HTML中将不会获得任何curl
标签。
使用instagram解决方案是查询Graphql。对于您的示例,将使用以下URL:<a>
URL中的参数告诉Instagram生成Graphql而不是HTML。然后,您必须使用python进行解析。 Graphene library执行此操作。
或者您可以使用例如Instagram Scraper来为您包装所有内容。