使用简单的 Instagram Scraper 时遇到问题[重复]

问题描述 投票:0回答:2

我对所有编程知识都很陌生,我正在为我的社会工程项目学习 Python。如果你撞到了自己的额头,真的很抱歉。

所以现在我正在看一个教程,从某个 Instagram 页面上抓取某些信息。可以说,f.e.我想从 www.instagram.com/nbamemes

提取信息

我在第 12 行遇到问题“IndentationError: Expected an indented block”。所以我用谷歌搜索了一下,但我只是没有得到代码。我需要放置自己的信息的占位符在哪里。

import requests
import urllib.request
import urllib.parse
import urllib.error
from bs4 import BeautifulSoup
import ssl
import json

class insta_Scraper_v1:

def getinfo (self, url):
html = urllib.request.urlopen('www.instagram.com/nbamemes', context=self.ctx).read()
soup = BeautifulSoup(html, 'html.parser')
data = soup.find_all ('meta', attr={'property': 'og:description'})

text = data[0]
user = '%s %s %s' % (test[-3], text[-2], text[-1])
followers = text[0]
following = text[2]
posts = text[4]
print ('User:', user)
print ( 'Followers:', followers)
print ('Following:', following)
print ('Posts:', posts)
print ('-----------------------')

def mail(self:
self.ctx = ssl.create_default_context()
self.ctx.check_hostname = False
self.ctx.verify_mode = ssl.CERT_NONE

with open('123.txt') as f: 
    self.content = f.readlines()
self.content = [x.strip() for x in self.content]
for url in self.content:
    self.getinfo(url)

if __name__ == '__main__'
obj = insta_Scraper_v1()
obj.main()

我使用了教程来对此进行编程。然而我并没有把整件事搞清楚。它并不完全适合初学者,我似乎需要帮助。再次抱歉这个超级初学者的问题。

最好的问候,

列夫

python beautifulsoup instagram screen-scraping urllib
2个回答
0
投票

将来,分享您的代码生成的错误消息将会很有用。它包括发生错误的行。

根据您提供的代码,我可以看到您没有缩进函数内的代码。函数声明之后

def
,需要将里面的所有代码缩进

所以来自:

def getinfo (self, url):
html = urllib.request.urlopen('www.instagram.com/nbamemes', context=self.ctx).read()
soup = BeautifulSoup(html, 'html.parser')
data = soup.find_all ('meta', attr={'property': 'og:description'})

致:

def getinfo (self, url):
    html = urllib.request.urlopen('www.instagram.com/nbamemes', context=self.ctx).read()
    soup = BeautifulSoup(html, 'html.parser')
    data = soup.find_all ('meta', attr={'property': 'og:description'})

-1
投票

缩进是Python中的块分隔符。下面是缩进的代码。每当您使用条件循环、def、类时,您都在创建一个块。为了定义您必须使用空格缩进代码。通常首选制表符空格,但即使是单个空格也可以正常工作。

import requests
import urllib.request
import urllib.parse
import urllib.error
from bs4 import BeautifulSoup
import ssl
import json

class insta_Scraper_v1:

    def getinfo (self, url):
        html = urllib.request.urlopen('www.instagram.com/nbamemes', context=self.ctx).read()
        soup = BeautifulSoup(html, 'html.parser')
        data = soup.find_all ('meta', attr={'property': 'og:description'})

        text = data[0]
        user = '%s %s %s' % (test[-3], text[-2], text[-1])
        followers = text[0]
        following = text[2]
        posts = text[4]
        print ('User:', user)
        print ( 'Followers:', followers)
        print ('Following:', following)
        print ('Posts:', posts)
        print ('-----------------------')

    def mail(self:
        self.ctx = ssl.create_default_context()
        self.ctx.check_hostname = False
        self.ctx.verify_mode = ssl.CERT_NONE

    with open('123.txt') as f: 
        self.content = f.readlines()
        self.content = [x.strip() for x in self.content]
        for url in self.content:
            self.getinfo(url)

if __name__ == '__main__'
obj = insta_Scraper_v1()
obj.main()

参考:极客对于极客:缩进

谢谢

© www.soinside.com 2019 - 2024. All rights reserved.