作为工作的一部分,我需要定期检查此page中的特定文档。我发现我可以使用pandas的方法read_html
将表成功读入数据框(这很方便,因为我可以通过关键字轻松查询特定文档)。
我现在遇到的问题是,该方法无法解析我需要的链接,而是保存纯文本(特别是我指的是第二列,其数字类似“ 1682/0 / 15-19”)。
我想到的代码非常简单:
import pandas as pd
df = pd.read_html('http://www.vru.gov.ua/act_list')[0]
这给了我一个数据框,其中包含链接所需的所有信息。
是否可以以某种方式获取链接而不是纯文本,如果可以,我该怎么办?
我知道,如果我使用了Requests和BeautifulSoup库,就可以获取href链接,但是我不知道BeautifulSoup库足以做到这一点。 有什么提示还是我应该只学习BeautifulSoup?
答案 0 :(得分:1)
您可以通过Google的快速搜索找到教程。您将必须遍历标签以编译列表,然后将数据列表转换为数据框:
您也可以像使用read_html()
一样拉表,但是您仍然需要返回并获取html链接(请参见下面的选项2):
import pandas as pd
import requests
from bs4 import BeautifulSoup
url = 'http://www.vru.gov.ua/act_list'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
table = soup.find('table')
records = []
columns = []
for tr in table.findAll("tr"):
ths = tr.findAll("th")
if ths != []:
for each in ths:
columns.append(each.text)
else:
trs = tr.findAll("td")
record = []
for each in trs:
try:
link = each.find('a')['href']
text = each.text
record.append(link)
record.append(text)
except:
text = each.text
record.append(text)
records.append(record)
columns.insert(1, 'Link')
df = pd.DataFrame(data=records, columns = columns)
选项2:
import pandas as pd
import requests
from bs4 import BeautifulSoup
url = 'http://www.vru.gov.ua/act_list'
df = pd.read_html(url)[0]
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
table = soup.find('table')
links = []
for tr in table.findAll("tr"):
trs = tr.findAll("td")
for each in trs:
try:
link = each.find('a')['href']
links.append(link)
except:
pass
df['Link'] = links
输出:
print (df.to_string())
№ Link Номер Вид документу Дата прийняття Назва документу Примiтки
0 1 http://www.vru.gov.ua/act/18641 1682/0/15-19 Рішення 20-06-2019 Про звільнення Бурана О.М. з посади судді Мали...
1 2 http://www.vru.gov.ua/act/18643 1684/0/15-19 Ухвала 20-06-2019 Про задоволення заяви члена Вищої ради правосу...
2 3 http://www.vru.gov.ua/act/18644 1685/0/15-19 Ухвала 20-06-2019 Про відмову у задоволенні заяви адвоката Рохма...
3 4 http://www.vru.gov.ua/act/18649 1690/0/15-19 Ухвала 20-06-2019 Про продовження строку розгляду скарги судді Х...
4 5 http://www.vru.gov.ua/act/18650 1691/0/15-19 Рішення 20-06-2019 Про нагородження заохочувальною відзнакою Вищо...
5 6 http://www.vru.gov.ua/act/18651 1692/0/15-19 Рішення 20-06-2019 Про інформацію робочої групи Вищої ради правос...
6 7 http://www.vru.gov.ua/act/18619 1660/3дп/15-19 Ухвала 19-06-2019 Про відкриття дисциплінарної справи стосовно с...
7 8 http://www.vru.gov.ua/act/18620 1661/3дп/15-19 Ухвала 19-06-2019 Про відмову у відкритті дисциплінарних справ з...
8 9 http://www.vru.gov.ua/act/18624 1665/3дп/15-19 Ухвала 19-06-2019 Прo задоволення заяви члена Третьої Дисципліна...
9 10 http://www.vru.gov.ua/act/18626 1667/3дп/15-19 Ухвала 19-06-2019 Прo задоволення заяви члена Третьої Дисципліна...
10 11 http://www.vru.gov.ua/act/18627 1668/3дп/15-19 Ухвала 19-06-2019 Про відмову у відкритті дисциплінарних справ з...
11 12 http://www.vru.gov.ua/act/18628 1669/3дп/15-19 Ухвала 19-06-2019 Про відмову у відкритті дисциплінарних справ з...
12 13 http://www.vru.gov.ua/act/18635 1676/2дп/15-19 Ухвала 19-06-2019 Про відкриття дисциплінарної справи стосовно с...
13 14 http://www.vru.gov.ua/act/18638 1679/2дп/15-19 Ухвала 19-06-2019 Про відмову у відкритті дисциплінарної справи ...
14 15 http://www.vru.gov.ua/act/18639 1680/2дп/15-19 Ухвала 19-06-2019 Про відмову у відкритті дисциплінарних справ з...
15 16 http://www.vru.gov.ua/act/18640 1681/2дп/15-19 Ухвала 19-06-2019 Про відмову у відкритті дисциплінарних справ з...
16 17 http://www.vru.gov.ua/act/18607 1648/0/15-19 Рішення 18-06-2019 Про звільнення Лучко О.О. з посади судді Івано...
17 18 http://www.vru.gov.ua/act/18608 1649/0/15-19 Ухвала 18-06-2019 Про залишення без розгляду заяви Лазаренко В.В...
18 19 http://www.vru.gov.ua/act/18609 1650/0/15-19 Ухвала 18-06-2019 Про залишення без розгляду подання Третьої Дис...
19 20 http://www.vru.gov.ua/act/18610 1651/0/15-19 Ухвала 18-06-2019 Про залишення без розгляду подання Другої Дисц...
20 21 http://www.vru.gov.ua/act/18615 1656/0/15-19 Рішення 18-06-2019 Про затвердження висновків членів Вищої ради п...
21 22 http://www.vru.gov.ua/act/18586 1627/0/15-19 Рішення 13-06-2019 Про звільнення Римлянської Г.О. ...
22 23 http://www.vru.gov.ua/act/18589 1630/0/15-19 Рішення 13-06-2019 Про затвердження висновку члена Вищої ради пра...
23 24 http://www.vru.gov.ua/act/18590 1631/0/15-19 Рішення 13-06-2019 Про призначення Максимішина С.Т.
24 25 http://www.vru.gov.ua/act/18591 1632/0/15-19 Рішення 13-06-2019 Про призначення Гавришука О.М.