问题与数据爬取有关。

huangapple go评论66阅读模式
英文:

Issue with crawling data

问题

以下是您提供的代码的翻译部分:

我打算从 https://drugbank.vn/danh-sach/co-so-kinh-doanh?page=1&size=20&sort=id,desc 网站上抓取数据

我的代码如下

import pandas as pd
import requests
from bs4 import BeautifulSoup as bs
url = "https://drugbank.vn/danh-sach/co-so-kinh-doanh?page=1&size=20&sort=id,desc"
page = requests.get(url)

soup = bs(page.text,'lxml')

table_body = soup.find('table')
row_data = []

for row in table_body.find_all('tr'):
    col = row.find_all('td')
    col = [ele.text.strip() for ele in col]
    row_data.append(col)
row_data

然而它返回以下错误

AttributeError: 'NoneType' object has no attribute 'find_all'

请帮助我修复这个问题

我想要从所有页面抓取表格数据

希望这有助于您理解代码并解决问题。

英文:

I am going to scrape data from https://drugbank.vn/danh-sach/co-so-kinh-doanh?page=1&size=20&sort=id,desc.

My code is

import pandas as pd
import requests
from bs4 import BeautifulSoup as bs
url = "https://drugbank.vn/danh-sach/co-so-kinh-doanh?page=1&size=20&sort=id,desc"
page = requests.get(url)
  
soup = bs(page.text,'lxml')

table_body = soup.find('table')
row_data = []

for row in table_body.find_all('tr'):
    col = row.find_all('td')
    col = [ele.text.strip() for ele in col]
    row_data.append(col)
row_data

However, it returns the error

AttributeError: 'NoneType' object has no attribute 'find_all'

Please help me to fix this

I want to scrape the table data from all pages

答案1

得分: 1

import requests

params = {
    'page': 0,
    'size': 20,
    'sort': 'id,desc',
}
url = 'https://drugbank.vn/services/drugbank/api/public/co-so-kinh-doanh'

r = requests.get(url, params=params)
data = r.json()

输出:

>>> data
[{'id': '5d491ad9c4a52bf9ac3cc0c1',
  'stt': '1277',
  'title': 'Nhà thuốc Thảo Dũng',
  'address': None,
  'numberDkkd': None,
  'businessForm': 'Nhà thuốc',
  'businessScope': 'Bán lẻ thuốc',
  'issueDate': None,
  'hoDem': 'DS Ngô Xuân',
  'ten': 'Trí',
  'ngaySinh': None,
  'cchn': None,
  'ngayCapCchn': None,
  'noiCapCchn': 'SYT Hải Phòng',
  'note': None},
 {'id': '5d491ad9c4a52bf9ac3cc0c0',
  'stt': '1276',
  'title': 'Nhà thuốc 125 Thùy Linh',
  'address': '125 Phan Đăng Lưu',
  'numberDkkd': '270/HP-ĐKKDD',
  'businessForm': 'Nhà thuốc',
  'businessScope': 'Bán lẻ thuốc',
  'issueDate': '2018-02-03T16:59:20.000Z',
  'hoDem': 'DS Phạm Thị Thu',
  'ten': 'Hiền',
  'ngaySinh': None,
  'cchn': '1677',
  'ngayCapCchn': '21/09/2016',
  'noiCapCchn': 'SYT Hải Phòng',
  'note': None},
 {'id': '5d491ad9c4a52bf9ac3cc0bf',
  'stt': '1275',
  'title': 'Nhà thuốc Phúc An',
  'address': '488 Trần Tất Văn, Tràng Minh',
  'numberDkkd': None,
  'businessForm': 'Nhà thuốc',
  'businessScope': 'Bán lẻ thuốc',
  'issueDate': None,
  'hoDem': 'DS Nguyễn Thị',
  'ten': 'Thảo',
  'ngaySinh': None,
  'cchn': None,
  'ngayCapCchn': None,
  'noiCapCchn': None,
  'note': None},
 {'id': '5d491ad9c4a52bf9ac3cc0be',
  'stt': '1267',
  'title': 'Nhà thuốc cổng BVTE',
  'address': 'Ngõ 285 Trường Chinh - KA',
  'numberDkkd': '12-17/ĐKKDD -HP',
  'businessForm': 'Nhà thuốc',
  'businessScope': 'Bán lẻ thuốc',
  'issueDate': '2017-02-07T16:59:20.000Z',
  'hoDem': 'DS. Bùi Thị Ánh',
  'ten': 'Tuyết',
  'ngaySinh': None,
  'cchn': '04/HP-CCHND',
  'ngayCapCchn': '2013-05-05T16:59:20.000Z',
  'noiCapCchn': 'SYT Hải Phòng',
  'note': None},
 {'id': '5d491ad9c4a52bf9ac3cc0bd',
  'stt': '1274',
  'title': 'Nhà thuốc 138',
  'address': '138 Trần Tất Văn, Phú Liễn',
  'numberDkkd': '273/HP-ĐKKDD',
  'businessForm': 'Nhà thuốc',
  'businessScope': 'Bán lẻ thuốc',
  'issueDate': None,
  'hoDem': 'DS Nguyễn Quang',
  'ten': 'Nghĩa',
  'ngaySinh': None,
  'cchn': '256/HD-CCHND',
  'ngayCapCchn': '22/8/2014',
  'noiCapCchn': 'SYT Hải Dương',
  'note': None},
 {'id': '5d491ad9c4a52bf9ac

<details>
<summary>英文:</summary>

The content is dynamically loaded so you can&#39;t use this url. However you can use the public API:

import requests

params = {
'page': 0,
'size': 20,
'sort': 'id,desc',
}
url = 'https://drugbank.vn/services/drugbank/api/public/co-so-kinh-doanh'

r = requests.get(url, params=params)
data = r.json()


Output:

>>> data
[{'id': '5d491ad9c4a52bf9ac3cc0c1',
'stt': '1277',
'title': 'Nhà thuốc Thảo Dũng',
'address': None,
'numberDkkd': None,
'businessForm': 'Nhà thuốc',
'businessScope': 'Bán lẻ thuốc',
'issueDate': None,
'hoDem': 'DS Ngô Xuân',
'ten': 'Trình',
'ngaySinh': None,
'cchn': None,
'ngayCapCchn': None,
'noiCapCchn': 'SYT Hải Phòng',
'note': None},
{'id': '5d491ad9c4a52bf9ac3cc0c0',
'stt': '1276',
'title': 'Nhà thuốc 125 Thùy Linh',
'address': '125 Phan Đăng Lưu',
'numberDkkd': '270/HP-ĐKKDD',
'businessForm': 'Nhà thuốc',
'businessScope': 'Bán lẻ thuốc',
'issueDate': '2018-02-03T16:59:20.000Z',
'hoDem': 'DS Phạm Thị Thu',
'ten': 'Hiền',
'ngaySinh': None,
'cchn': '1677',
'ngayCapCchn': '21/09/2016',
'noiCapCchn': 'SYT Hải Phòng',
'note': None},
{'id': '5d491ad9c4a52bf9ac3cc0bf',
'stt': '1275',
'title': 'Nhà thuốc Phúc An',
'address': '488 Trần Tất VĂn, Tràng Minh',
'numberDkkd': None,
'businessForm': 'Nhà thuốc',
'businessScope': 'Bán lẻ thuốc',
'issueDate': None,
'hoDem': 'DS Nguyễn Thị',
'ten': 'Thảo',
'ngaySinh': None,
'cchn': None,
'ngayCapCchn': None,
'noiCapCchn': None,
'note': None},
{'id': '5d491ad9c4a52bf9ac3cc0be',
'stt': '1267',
'title': 'Nhà thuốc cổng BVTE',
'address': 'Ngõ 285 Trường Chinh - KA',
'numberDkkd': '12-17/ĐKKDD -HP',
'businessForm': 'Nhà thuốc',
'businessScope': 'Bán lẻ thuốc',
'issueDate': '2017-02-07T16:59:20.000Z',
'hoDem': 'DS. Bùi Thị Ánh',
'ten': 'Tuyết',
'ngaySinh': None,
'cchn': '04/HP-CCHND',
'ngayCapCchn': '2013-05-05T16:59:20.000Z',
'noiCapCchn': 'SYT Hải Phòng',
'note': None},
{'id': '5d491ad9c4a52bf9ac3cc0bd',
'stt': '1274',
'title': 'Nhà thuốc 138',
'address': '138 Trần Tất Văn, Phù Liễn',
'numberDkkd': '273/HP-ĐKKDD',
'businessForm': 'Nhà thuốc',
'businessScope': 'Bán lẻ thuốc',
'issueDate': None,
'hoDem': 'DS Nguyễn Quang',
'ten': 'Nghĩa',
'ngaySinh': None,
'cchn': '256/HD-CCHND',
'ngayCapCchn': '22/8/2014',
'noiCapCchn': 'SYT Hải Dương',
'note': None},
{'id': '5d491ad9c4a52bf9ac3cc0bc',
'stt': '1273',
'title': 'Nhà thuốc 132',
'address': '132 Trần Tất Văn, Phù Liễn',
'numberDkkd': None,
'businessForm': 'Nhà thuốc',
'businessScope': 'Bán lẻ thuốc',
'issueDate': '2018-02-03T16:59:20.000Z',
'hoDem': 'DS Đoàn thị Thu',
'ten': 'Hằng',
'ngaySinh': None,
'cchn': '11/CCHN-SYT - HP',
'ngayCapCchn': '28/7/2017',
'noiCapCchn': 'SYT Hải Phòng',
'note': None},
{'id': '5d491ad9c4a52bf9ac3cc0bb',
'stt': '1272',
'title': 'Nhà thuốc 190',
'address': '190 Hoàng Công Khanh, Lãm Hà',
'numberDkkd': None,
'businessForm': 'Nhà thuốc',
'businessScope': 'Bán lẻ thuốc',
'issueDate': None,
'hoDem': 'DS Nguyễn Thị Minh',
'ten': 'Ngọc',
'ngaySinh': None,
'cchn': '201/CCHN-HP',
'ngayCapCchn': '16/11/2017',
'noiCapCchn': 'SYT Hải Phòng',
'note': None},
{'id': '5d491ad9c4a52bf9ac3cc0ba',
'stt': '1271',
'title': 'Công ty TNHH Bình Định',
'address': None,
'numberDkkd': None,
'businessForm': 'Nhà thuốc',
'businessScope': 'Bán lẻ thuốc',
'issueDate': None,
'hoDem': 'DS. Nguyễn Văn',
'ten': 'Minh',
'ngaySinh': None,
'cchn': '001577/TB-CCHND',
'ngayCapCchn': '19/10/2016',
'noiCapCchn': 'SYT Thái Bình',
'note': None},
{'id': '5d491ad9c4a52bf9ac3cc0b9',
'stt': '1270',
'title': 'Nhà thuốc 269',
'address': '269 đường Đồng Hòa - KA',
'numberDkkd': '276/HP-ĐKKDD',
'businessForm': 'Nhà thuốc',
'businessScope': 'Bán lẻ thuốc',
'issueDate': '2018-02-03T16:59:20.000Z',
'hoDem': 'DS. Nguyễn Thị',
'ten': 'Thắng',
'ngaySinh': None,
'cchn': '162/HP-CCHND',
'ngayCapCchn': '28/8/2016',
'noiCapCchn': 'SYT Hải Phòng',
'note': None},
{'id': '5d491ad9c4a52bf9ac3cc0b8',
'stt': '1268',
'title': 'Nhà thuốc Thúy Hường',
'address': '868 Trần Nhân Tông - KA',
'numberDkkd': '03-17/ĐKKDD -HP',
'businessForm': 'Nhà thuốc',
'businessScope': 'Bán lẻ thuốc',
'issueDate': '2017-02-07T16:59:20.000Z',
'hoDem': 'DS. Vũ Văn',
'ten': 'Chiến',
'ngaySinh': None,
'cchn': '1289/HP-CCHND',
'ngayCapCchn': '21/12/2016',
'noiCapCchn': 'SYT Hải Phòng',
'note': None},
{'id': '5d491ad9c4a52bf9ac3cc0b7',
'stt': '1269',
'title': 'Nhà thuốc Kim Dung',
'address': '445 Trần Tất Văn - KA',
'numberDkkd': '1370/HP-ĐKKDD',
'businessForm': 'Nhà thuốc',
'businessScope': 'Bán lẻ thuốc',
'issueDate': '20/5/2017',
'hoDem': 'DS. Nguyễn Xuân',
'ten': 'Thời',
'ngaySinh': None,
'cchn': '1709/HP-CCHND',
'ngayCapCchn': '21/10/2016',
'noiCapCchn': 'SYT Hải Phòng',
'note': None},
{'id': '5d491ad9c4a52bf9ac3cc0b6',
'stt': '1266',
'title': 'Nhà thuốc BVTE',
'address': 'Phố Việt Đức - Lãm Hà - KA',
'numberDkkd': '169/HP-ĐKKDD',
'businessForm': 'Nhà thuốc',
'businessScope': 'Bán lẻ thuốc',
'issueDate': '28/6/2017',
'hoDem': 'DS. Nguyễn Thị Kim',
'ten': 'Thanh',
'ngaySinh': None,
'cchn': '1927/HP-CCHND',
'ngayCapCchn': '28/12/2016',
'noiCapCchn': 'SYT Hải Phòng',
'note': None},
{'id': '5d491ad9c4a52bf9ac3cc0b5',
'stt': '1264',
'title': 'Nhà thuốc Thái Nguyệt',
'address': 'Số 515 Trần Tất Văn - KA',
'numberDkkd': '156/HP-ĐKKDD',
'businessForm': 'Nhà thuốc',
'businessScope': 'Bán lẻ thuốc',
'issueDate': '2018-04-30T16:59:20.000Z',
'hoDem': 'DS. Nguyễn T. Thu',
'ten': 'Hường',
'ngaySinh': None,
'cchn': '1298/HP-CCHND',
'ngayCapCchn': '29/9/2015',
'noiCapCchn': 'SYT Hải Phòng',
'note': None},
{'id': '5d491ad9c4a52bf9ac3cc0b4',
'stt': '1265',
'title': 'Nhà thuốc số 1',
'address': 'Số 1 Nguyễn Công Mỹ - TTN - KA',
'numberDkkd': '922/HP-ĐKKDD',
'businessForm': 'Nhà thuốc',
'businessScope': 'Bán lẻ thuốc',
'issueDate': '27/01/2016',
'hoDem': 'DS. Nguyễn Thị Thu',
'ten': 'Hương',
'ngaySinh': None,
'cchn': '865/HP-CCHND',
'ngayCapCchn': '22/4/2015',
'noiCapCchn': 'SYT Hải Phòng',
'note': None},
{'id': '5d491ad9c4a52bf9ac3cc0b3',
'stt': '1260',
'title': 'Nhà thuốc Men Sa',
'address': 'Số 144 Trường Chinh - KA',
'numberDkkd': '25-17/ĐKKDD -HP',
'businessForm': 'Nhà thuốc',
'businessScope': 'Bán lẻ thuốc',
'issueDate': '25/8/2017',
'hoDem': 'DS. Trần Thị',
'ten': 'Bích',
'ngaySinh': None,
'cchn': '1819/HP-CCHND',
'ngayCapCchn': '15/12/2016',
'noiCapCchn': 'SYT Hải Phòng',
'note': None},
{'id': '5d491ad9c4a52bf9ac3cc0b2',
'stt': '1262',
'title': 'Nhà thuốc Lan Hương',
'address': 'Số 19 Trần Nhân Tông - Kiến An',
'numberDkkd': '1278/HP-ĐKKDD',
'businessForm': 'Nhà thuốc',
'businessScope': 'Bán lẻ thuốc',
'issueDate': '13/12/2016',
'hoDem': 'DS. Ngô Thị Thu',
'ten': 'Hương',
'ngaySinh': None,
'cchn': None,
'ngayCapCchn': None,
'noiCapCchn': 'SYT Hải Phòng',
'note': None},
{'id': '5d491ad9c4a52bf9ac3cc0b1',
'stt': '1263',
'title': 'Nhà thuốc Minh Trí',
'address': 'Số 2 Tây Sơn - T Thành Ngọ - KA',
'numberDkkd': '1282/HP-ĐKKDD',
'businessForm': 'Nhà thuốc',
'businessScope': 'Bán lẻ thuốc',
'issueDate': '28/12/2016',
'hoDem': 'DS. Lê Văn',
'ten': 'Chương',
'ngaySinh': None,
'cchn': '1496/HP-CCHND',
'ngayCapCchn': '29/3/2016',
'noiCapCchn': 'SYT Hải Phòng',
'note': None},
{'id': '5d491ad9c4a52bf9ac3cc0b0',
'stt': '1261',
'title': 'Nhà thuốc 68',
'address': 'Số 68 Trần Tất Văn - KA',
'numberDkkd': '40-17/ĐKKDD -HP',
'businessForm': 'Nhà thuốc',
'businessScope': 'Bán lẻ thuốc',
'issueDate': '25/8/2017',
'hoDem': 'DS. Hoàng T. Như',
'ten': 'Quỳnh',
'ngaySinh': None,
'cchn': '1614/HP-CCHND',
'ngayCapCchn': '28/7/2016',
'noiCapCchn': 'SYT Hải Phòng',
'note': None},
{'id': '5d491ad9c4a52bf9ac3cc0af',
'stt': '1259',
'title': 'Nhà thuốc 39',
'address': 'Số 39 Phố Việt Đức - Lãm Hà - KA',
'numberDkkd': '1073/HP-ĐKKDD',
'businessForm': 'Nhà thuốc',
'businessScope': 'Bán lẻ thuốc',
'issueDate': '26/7/2016',
'hoDem': 'DS. Nguyễn Thị',
'ten': 'Lan',
'ngaySinh': None,
'cchn': '30/HP-CCHND',
'ngayCapCchn': '28/6/2013',
'noiCapCchn': 'SYT Hải Phòng',
'note': None},
{'id': '5d491ad9c4a52bf9ac3cc0ae',
'stt': '1257',
'title': 'Nhà thuốc Thu Trang',
'address': 'Số 43 Hương Sơn - Văn Đẩu - KA',
'numberDkkd': '945/HP-ĐKKDD',
'businessForm': 'Nhà thuốc',
'businessScope': 'Bán lẻ thuốc',
'issueDate': '25/02/2016',
'hoDem': 'DS. Phùng Kim',
'ten': 'Quế',
'ngaySinh': None,
'cchn': '107-10/CCHN',
'ngayCapCchn': '2010-04-09T16:59:20.000Z',
'noiCapCchn': 'SYT Hải Phòng',
'note': None}]


&gt; Is there any way to scrape all page automatically. multipage into one dataset

import requests

params = {
'page': 0,
'size': 20,
'sort': 'id,desc',
}
url = 'https://drugbank.vn/services/drugbank/api/public/co-so-kinh-doanh'

dataset = []
for page in range(0, 10):
params['date'] = page
r = requests.get(url, params=params)
data = r.json()
dataset.extend(data)
dataset
len(dataset)

huangapple
  • 本文由 发表于 2023年5月28日 13:30:28
  • 转载请务必保留本文链接:https://go.coder-hub.com/76350085.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定