我正在尝试从网站获取请求文本,并使用beautifulsoup筛选出数据。但是,当我编写此代码时,它给了我一个错误,但是我无法运行它,请帮忙。
我试图将文本声明为全局变量,但是我不明白如何在其他函数中使用另一个函数变量。
import requests
from bs4 import BeautifulSoup
global website
global text
website = raw_input('Enter Website: ')
def getconnect():
req = requests.get(website)
text = req.text
def bs4(text):
soup = BeautifulSoup(text , 'html.parser')
print soup.title
print soup.p
def main():
return
getconnect()
bs4()
我想从网站中提取数据,然后使用不同的功能通过beautifulsoup运行数据。我刚刚开始编程。
谢谢
答案 0 :(得分:0)
您需要这样的东西
import requests
from bs4 import BeautifulSoup
def parse():
website = input('Enter Website: ')
text = requests.get(website).text
soup = BeautifulSoup(text, 'html.parser')
print(soup.title)
print(soup.p)
if __name__ == '__main__':
parse()
答案 1 :(得分:0)
您没有将文本传递给bs4
方法。
您应该有这个:
text = getconnect()
bs4(text)
答案 2 :(得分:0)
您的代码有几个问题:
您声明<input type="text" class="partyTagInput" maxlength="49" value="">
<br>
<input type="text" id="inputTag" maxlength="35" value="TEXT HERE">
<br>
<button id="buttonTag" style="width: 30%;">BUTTON</button>
变量的方式不正确。如果要修改全局变量的值,则需要使用global
关键字 inside 函数。
您已经定义了global
函数bs4
,以使其期望一个参数。但是,您随后将在不带参数def bs4(text):
的情况下调用它。
这是一个可行的实现:
bs4()
演示:https://repl.it/@glhr/55470747
但是,最好避免使用全局变量:
import requests
from bs4 import BeautifulSoup
text = ""
website = raw_input('Enter Website: ')
def getconnect():
global text
req = requests.get(website)
text = req.text
def bs4():
soup = BeautifulSoup(text , 'html.parser')
print soup.title
print soup.p
getconnect()
bs4()