首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bs4抓取表指定

Bs4抓取表指定
EN

Stack Overflow用户
提问于 2020-05-23 17:52:31
回答 1查看 49关注 0票数 0

我希望你们永远健康

我想用BS4抓取一个更具体的表。这是我的代码:

代码语言:javascript
复制
from bs4 import BeautifulSoup
import requests


url = 'test.com'
page = requests.get(url)
soup = BeautifulSoup(page.text, 'lxml')

for row in soup.select('tbody tr'):
    row_text = [x.text for x in row.find_all('td')]
    print (row_text)

如何获得这样的结果:

代码语言:javascript
复制
    Number, Name, address, telp, komoditi
1, "ABON JUARA" JUARA FOOD INDUSTRY, Jl. Jend Sudirman 339, Salatiga, Jawa Tengah, 0298-324060, Abon Sapi Dan Ayam

并保存在CSV中

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-23 18:47:49

代码语言:javascript
复制
import requests
from bs4 import BeautifulSoup
import csv


def main(url):
    r = requests.get(url)
    soup = BeautifulSoup(r.content, 'html.parser')
    target = soup.select_one("table#newspaper-a").select("tr[valign=top]")
    with open("data.csv", 'w', newline="") as f:
        writer = csv.writer(f)
        writer.writerow(["No", "Name", "Address", "Tel", "Komoditi"])
        for item in target:
            item = list(item.stripped_strings)
            item[3] = item[3][6:]
            writer.writerow(item)


main("https://kemenperin.go.id/direktori-perusahaan?what=&prov=&hal=1")

输出:view-online

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61970254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档