【发布时间】:2020-10-03 10:31:44
【问题描述】:
import requests
import urllib.request
from bs4 import BeautifulSoup
def get_photos(nick,how_many):
url = f"https://www.picuki.com/profile/{nick}"
content = requests.get(url,headers={'User-Agent': 'Mozilla/5.0'}).content
soup = BeautifulSoup(content,"html.parser")
images = [f["src"] for f in soup.findAll('img',class_="post-image")]
for index, image in enumerate(images, start=1):
urllib.request.urlretrieve(image, f"/Users/user/PycharmProjects/untitled1/Instagram_images/image{index}.png")
if index == how_many: break
if __name__ == "__main__":
get_photos("Username",20)
所以我有这段代码,它可以从 instagram 下载 png 格式的图像。但问题是这个页面只加载了 18 张图片而不滚动。所以如果我输入 18-36 我需要再向下滚动一次页面,如果 36-54 我需要向下滚动两次并获得它的 HTML。如何处理请求,甚至可以使用这个模块?
【问题讨论】:
-
我不知道您的源页面是什么,但它可能正在执行某种无限滚动,通过 AJAX 或 Fetch API 从服务器获取更多数据。在这种情况下,您将不得不执行 JavaScript 来获取额外的数据。 (或者,只要弄清楚 API 是什么并直接调用它。)
-
我是个爬虫新手。但我猜是无限滚动 src="/app/assets/js/infinite-scroll.pkgd.js" 我在inspect中找到了这个。
标签: python parsing web-scraping python-requests