繁体   English   中英

python函数,beautifulsoup抓取

[英]python function, beautifulsoup scraping

我需要把它变成一个函数

#scrape

for parsed_link in soup.findAll('a', {'target':'Map'}):
    links.extend(parsed_link.contents)

返回结果的列表称为“链接”。 如上所述,它可以正常工作,但是我的函数解决方案无法正常工作。 这就是我所拥有的:

def scrape():
    parsed_link = soup.findAll('a', {'target':'Map'})
    links.extend(parsed_link.contents)

我要去哪里错了? 所有帮助表示赞赏。

为了完整起见,下面是代码的其余部分:

from selenium import webdriver
from bs4 import BeautifulSoup as bs

path_to_chromedriver = r'C:\Users\Kane\Desktop\chromedriver_win32\chromedriver.exe'
browser = webdriver.Chrome(executable_path = path_to_chromedriver)
url = 'http://www.fieldmycology.net/FRDBI/FRDBIrecord.asp?intGBNum=1511'
browser.get(url)

html = browser.page_source
soup = bs(html, 'html.parser')
links = []

for parsed_link in soup.findAll('a', {'target':'Map'}):
    links.extend(parsed_link.contents)

这是我将其转换为函数的方法:

def scrape(soup):
    links = []

    for parsed_link in soup.findAll('a', {'target':'Map'}):
        links.append(parsed_link.contents)

    return links

...


soup = ...
links = scrape(soup)

第二个示例没有for循环。 您可能想要append到列表,而不是extend 此函数将soup作为参数,然后运行您在第一个示例中提供的代码,并以links作为返回值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM