Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python BeautifulSoup:如何获取标记值和文本?以及如何遍历URL列表?_Python_Selenium_Web Scraping_Beautifulsoup - Fatal编程技术网

Python BeautifulSoup:如何获取标记值和文本?以及如何遍历URL列表?

Python BeautifulSoup:如何获取标记值和文本?以及如何遍历URL列表?,python,selenium,web-scraping,beautifulsoup,Python,Selenium,Web Scraping,Beautifulsoup,我不熟悉python中的beautiful soup/selenium,我正在尝试从URL列表中获取联系人/电子邮件。 网址: 我正在解析的HTML: 联系 以色列航空公司 电子邮件 伊斯拉。s@xxxx.com 备用电子邮件 主电话 1--1 备用电话 像这样的东西应该可以做到。我删除了所有的隐式等待(顺便说一句,如果你想走这条路,你应该在你的脚本顶部设置一次,当你安装你的驱动程序时;它们也很长!) result是一个列表,它将以url+contact+email的形式包含所有收集的输出。

我不熟悉python中的beautiful soup/selenium,我正在尝试从URL列表中获取联系人/电子邮件。 网址:

我正在解析的HTML:


联系
以色列航空公司
电子邮件
伊斯拉。s@xxxx.com
备用电子邮件 主电话 1--1 备用电话
像这样的东西应该可以做到。我删除了所有的隐式等待(顺便说一句,如果你想走这条路,你应该在你的脚本顶部设置一次,当你安装你的
驱动程序时;它们也很长!)


result
是一个列表,它将以url+contact+email的形式包含所有收集的输出。

类似的内容应该可以做到这一点。我删除了所有的隐式等待(顺便说一句,如果你想走这条路,你应该在你的脚本顶部设置一次,当你安装你的
驱动程序时;它们也很长!)


result
是一个列表,它将以url+联系人+电子邮件的形式包含所有收集的输出。

正如@QHarr建议的那样,使用外部循环作为url。使用reglar表达式re搜索文本

import re
listOfURLs=['https://oooo.com/Number=xxxxx', 'https://oooo.com/Number/yyyyyy', 'https://oooo.com/Number/zzzzzz']

for url in listOfURLs:
    driver = webdriver.Chrome(chrome_driver_path)
    driver.maximize_window()
    driver.get(url)
    driver.implicitly_wait(30)
    content = driver.page_source
    soup = BeautifulSoup(content, 'html.parser')
    print(url)
    print(soup.find('h6',text=re.compile("Contact")).find_next('h5').text)
    print(soup.find('h6',text=re.compile("Email")).find_next('h5').text)

正如@QHarr建议的,使用外部循环作为url。使用正则表达式re搜索文本

import re
listOfURLs=['https://oooo.com/Number=xxxxx', 'https://oooo.com/Number/yyyyyy', 'https://oooo.com/Number/zzzzzz']

for url in listOfURLs:
    driver = webdriver.Chrome(chrome_driver_path)
    driver.maximize_window()
    driver.get(url)
    driver.implicitly_wait(30)
    content = driver.page_source
    soup = BeautifulSoup(content, 'html.parser')
    print(url)
    print(soup.find('h6',text=re.compile("Contact")).find_next('h5').text)
    print(soup.find('h6',text=re.compile("Email")).find_next('h5').text)

您需要在listofulls中为url设置一个外循环:@QHarr我喜欢您关于为url设置一个外循环的建议。我们是否也可以像在这个问题上一样进行写作:/60908216/如何在BeautifulSoup中处理多个URL并将数据转换为datafram/60908470#comment107771591(U 60908470)这可能是另一种方法。-在这个问题上,我试图遵循的是:!?思想!?您需要在listofulls中为url设置一个外循环:@QHarr我喜欢您关于为url设置一个外循环的建议。我们是否也可以像在这个问题上一样进行写作:/60908216/如何在BeautifulSoup中处理多个URL并将数据转换为datafram/60908470#comment107771591(U 60908470)这可能是另一种方法。-在这个问题上,我试图遵循的是:!?思想!?您好,亲爱的昆都克-非常感谢循环解决方案。这是非常无趣的mille grazie-你的zerohello亲爱的KunduK-非常感谢你的回答:在这个问题中,你展示了我在我的问题中需要的很多东西-在这个网站上可以看到:questions/60954426/writing-a-loop-beautifulsoup-and-lxml-for-get-page-content-in-a-page-to-pag-如果你看一下,这将是非常好的:技术,比如。从一个页面收集多个信息,并将其收集到输出中,然后将其添加到URL列表中。我试图将这些技巧应用到我的问题中。如果你能看看上面提到的这个问题并帮我一把,我会很高兴的。thx提前很多亲爱的昆都克-我再次喜欢你的答案,我愿意点击下载投票按钮下方的空心按钮,但我现在看到的只是所谓的时间线。但也许我会明白你的意思,并建议我去做。。。也许你对我的问题有一些想法-我只是添加了目标和问题的目的。非常感谢。顺便说一句:在过去的几天里,我从你那里学到了很多东西您好,亲爱的昆都克-非常感谢循环解决方案。这是非常无趣的mille grazie-你的zerohello亲爱的KunduK-非常感谢你的回答:在这个问题中,你展示了我在我的问题中需要的很多东西-在这个网站上可以看到:questions/60954426/writing-a-loop-beautifulsoup-and-lxml-for-get-page-content-in-a-page-to-pag-如果你看一下,这将是非常好的:技术,比如。从一个页面收集多个信息,并将其收集到输出中,然后将其添加到URL列表中。我试图将这些技巧应用到我的问题中。如果你能看看上面提到的这个问题并帮我一把,我会很高兴的。thx提前很多亲爱的昆都克-我再次喜欢你的答案,我愿意点击下载投票按钮下方的空心按钮,但我现在看到的只是所谓的时间线。但也许我会明白你的意思,并建议我去做。。。也许你对我的问题有一些想法-我只是添加了目标和问题的目的。非常感谢。顺便说一句:在过去的几天里,我从你那里学到了很多东西谢谢你的回答。它对我有效我注意到的唯一一件事是,当我使用print(result)时,我从result中得到一个输出,但当我使用returnresult时,我得到[],你知道为什么列表会出现这种情况吗?很高兴它有帮助。确保在函数范围内使用
返回结果
,即将代码包装在函数中
定义返回结果
,并注意缩进。谢谢您的回答。它对我有效我注意到的唯一一件事是,当我使用print(result)时,我从result中得到一个输出,但当我使用returnresult时,我得到[],你知道为什么列表会出现这种情况吗?很高兴它有帮助。确保在函数范围内使用
返回结果
,即将代码包装在函数
def return result
中,并注意缩进。
import re
listOfURLs=['https://oooo.com/Number=xxxxx', 'https://oooo.com/Number/yyyyyy', 'https://oooo.com/Number/zzzzzz']

for url in listOfURLs:
    driver = webdriver.Chrome(chrome_driver_path)
    driver.maximize_window()
    driver.get(url)
    driver.implicitly_wait(30)
    content = driver.page_source
    soup = BeautifulSoup(content, 'html.parser')
    print(url)
    print(soup.find('h6',text=re.compile("Contact")).find_next('h5').text)
    print(soup.find('h6',text=re.compile("Email")).find_next('h5').text)