英文:
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'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}]
> 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)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论