我已经在python中编写了一个脚本来使用函数从网站的登录页面中删除所有names和links相关的脚本.get_links().然后我创建了另一个功能.get_info()来到达另一个页面(使用从第一个函数派生的链接),以便从那里刮取电话号码.
我根本不需要创建第二个功能如果我的目标是解析该网页中的两个项目,因为它们已经在着陆页中可用.
但是,我希望我的解析器表现的方式是names在第二个函数中打印(从第一个函数开始)phone numbers.最重要的是,我不想for loop在第二个函数中踢出定义.如果for loop不在第二个功能中那么问题就不会出现.没有使用for loop我已经可以获得所需的输出.
到目前为止这是我的脚本:
import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin
url = "https://potguide.com/alaska/marijuana-dispensaries/"
def get_links(link):
session = requests.Session()
session.headers['User-Agent'] = 'Mozilla/5.0'
r = session.get(link)
soup = BeautifulSoup(r.text,"lxml")
for items in soup.select("#StateStores .basic-listing"):
name = items.select_one("h4 a").text
namelink = urljoin(link,items.select_one("h4 a").get("href")) ##making it a fully qualified url
get_info(session,name,namelink) ##passing session in order to reuse it …Run Code Online (Sandbox Code Playgroud) 我已经
<a href="MENU.asp?navid=1">Property</a>
并且需要获取文本“Property”。我找到了 href 元素,但是当我尝试对其进行 get_attribute("value") 时,它返回“None”