Python 如何使用BeautifulSoup删除Instagram

Python 如何使用BeautifulSoup删除Instagram,python,web-scraping,beautifulsoup,instagram,python-requests,Python,Web Scraping,Beautifulsoup,Instagram,Python Requests,我想从一个公共Instagram帐户中抓取照片。我对bs4非常熟悉,所以我从那开始。使用Chrome上的element inspector,我注意到图片在一个无序列表中,而li有“photo”类,所以我想,见鬼,用findAll刮不会那么难吧 错误:它没有返回任何内容(下面的代码),我很快注意到元素检查器中显示的代码与我从请求中提取的代码不一样,即我从请求中提取的代码中没有无序列表 你知道我如何得到元素检查器中显示的代码吗 记录在案,这是我开始的代码,因为无序列表不存在,所以无法工作: from

我想从一个公共Instagram帐户中抓取照片。我对bs4非常熟悉,所以我从那开始。使用Chrome上的element inspector,我注意到图片在一个无序列表中,而li有“photo”类,所以我想,见鬼,用findAll刮不会那么难吧

错误:它没有返回任何内容(下面的代码),我很快注意到元素检查器中显示的代码与我从请求中提取的代码不一样,即我从请求中提取的代码中没有无序列表

你知道我如何得到元素检查器中显示的代码吗

记录在案,这是我开始的代码,因为无序列表不存在,所以无法工作:

from bs4 import BeautifulSoup
import requests
import re

r = requests.get('http://instagram.com/umnpics/')
soup = BeautifulSoup(r.text)
for x in soup.findAll('li', {'class':'photo'}):
    print x

感谢您的帮助。

如果您查看该页面的源代码,您将看到一些javascript生成该页面。您在元素浏览器中看到的是脚本运行后的网页,而beautifulsoup只获取html文件。为了解析呈现的网页,您需要使用类似的工具来呈现网页

例如,这就是硒的外观:

from bs4 import BeautifulSoup
import selenium.webdriver as webdriver

url = 'http://instagram.com/umnpics/'
driver = webdriver.Firefox()
driver.get(url)

soup = BeautifulSoup(driver.page_source)

for x in soup.findAll('li', {'class':'photo'}):
    print x

现在,汤应该是您期望的了。

页面大量使用JavaScript。您需要查看页面源代码(Chrome:View->Developer->View source)以查看浏览器下载的内容。您在inspector中看到的是浏览器在运行从页面引用的JavaScript后构建的内容。