我对所有编程知识都很陌生,我正在为我的社会工程项目学习 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()
我使用了教程来对此进行编程。然而我并没有把整件事搞清楚。它并不完全适合初学者,我似乎需要帮助。再次抱歉这个超级初学者的问题。
最好的问候,
列夫
将来,分享您的代码生成的错误消息将会很有用。它包括发生错误的行。
根据您提供的代码,我可以看到您没有缩进函数内的代码。函数声明之后
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'})
缩进是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()
参考:极客对于极客:缩进
谢谢