【问题标题】:How to scrape a website using beautifulsoup如何使用 Beautifulsoup 抓取网站
【发布时间】:2020-11-20 07:56:30
【问题描述】:

我正在尝试为费用字段抓取网站 https://remittanceprices.worldbank.org/en/corridor/Australia/China

url = 'https://remittanceprices.worldbank.org/en/corridor/Australia/China'
r = requests.get(url,verify=False)
soup = BeautifulSoup(r.text,'lxml')
rows = [i.get_text("|").split("|") for i in soup.select('#tab-1 .corridor-row')]
for row in rows:
    #a,b,c,d,e = row[2],row[15],row[18],row[21],row[25]
    #print(a,b,c,d,e,sep='|')
    print('{0[2]}|{0[15]}|{0[18]}|{0[21]}|{0[25]}').format(row)

但是我收到了带有上述代码的响应 AttributeError。

谁能帮帮我?

【问题讨论】:

    标签: python web-scraping beautifulsoup


    【解决方案1】:

    问题是您使用.format()print(),而不是字符串。 .format()str类型的方法,print()实际上返回None,所以试试:

    url = 'https://remittanceprices.worldbank.org/en/corridor/Australia/China'
    r = requests.get(url,verify=False)
    soup = BeautifulSoup(r.text,'lxml')
    rows = [i.get_text("|").split("|") for i in soup.select('#tab-1 .corridor-row')]
    for row in rows:
        #a,b,c,d,e = row[2],row[15],row[18],row[21],row[25]
        #print(a,b,c,d,e,sep='|')
        print('{0[2]}|{0[15]}|{0[18]}|{0[21]}|{0[25]}'.format(row))
    

    【讨论】:

    • 非常感谢。我想提取所有行的“费用”列值。我试过上面的sn-p。您能告诉我如何实现这一目标吗?
    猜你喜欢
    • 2019-12-15
    • 1970-01-01
    • 1970-01-01
    • 2020-05-30
    • 2020-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多