小编Ywa*_*pom的帖子

无法在另一个功能中以正确的方式打印名称

我已经在python中编写了一个脚本来使用函数从网站的登录页面中删除所有nameslinks相关的脚本.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)

python function beautifulsoup web-scraping python-3.x

9
推荐指数
2
解决办法
344
查看次数

如何使用 python 和 webdriver 获取标签之间的文本?

我已经 <a href="MENU.asp?navid=1">Property</a> 并且需要获取文本“Property”。我找到了 href 元素,但是当我尝试对其进行 get_attribute("value") 时,它返回“None”

python webdriver

3
推荐指数
1
解决办法
2197
查看次数