Scrape网站仅显示填充的类别

时间:2019-08-13 12:20:49

标签: python web-scraping

我正在抓取一个网站,它拉动页面的内容,但是有些类别的标题在技术上是空的,但仍显示标题。我只想查看包含事件的类别。理想情况下,我什至可以包含每个事务的组成部分,以便选择要显示的元素。

import requests
from bs4 import BeautifulSoup

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36'}

print('Scraping NH Dept of Banking...')
print()

NHurl = 'https://www.nh.gov/banking/corporate-activities/index.htm'
NHr = requests.get(NHurl, headers = headers)

NHsoup = BeautifulSoup(NHr.text, 'html.parser')

NHlist = []

for events in NHsoup.findAll('tr')[2:]:
    print(events.text)
    NHlist.append(events.text)
print(' '.join(NHlist))

就像我说的那样,这可以获取所有信息,但是有很多标头/空白不需要被提取。例如,在我撰写本文时,“获取”,“转换”和“控制权变更”为空,但标头仍然存在,并且标头后面有相对较大的空白空间。我觉得我需要某种循环来遍历每个标头('td'),然后获取其内容('tr'),但我不确定如何执行。

3 个答案:

答案 0 :(得分:1)

您可以使用itertools.groupby对元素进行分组,然后过滤出空行:

import requests
from itertools import groupby
from bs4 import BeautifulSoup

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36'}

print('Scraping NH Dept of Banking...')
print()

NHurl = 'https://www.nh.gov/banking/corporate-activities/index.htm'
NHr = requests.get(NHurl, headers = headers)

NHsoup = BeautifulSoup(NHr.text, 'html.parser')

NHlist = []
for _, g in groupby(NHsoup.select('tr'), lambda k, d={'g':0}: (d.update(g=d['g']+1), d['g']) if k.select('th') else (None, d['g'])):
    s = [tag.get_text(strip=True, separator=' ') for tag in g]
    if any(i == '' for i in s):
        continue
    NHlist.append(s)

# This is just pretty printing, all the data are already in NHlist:
l = max(map(len,(j for i in NHlist for j in i))) + 5
for item in NHlist:
    print('{: <4} {}'.format(' ', item[0]))
    print('-' * l)
    for i, ev in enumerate(item[1:], 1):
        print('{: <4} {}'.format(i, ev))
    print()

打印:

Scraping NH Dept of Banking...

     New Bank
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1    12/11/18 The Millyard Bank

     Interstate Bank Combination
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1    01/16/19 Optima Bank & Trust Company with and into Cambridge Trust Company Portsmouth, NH 03/29/19

     Amendment to Articles of Agreement or Incorporation; Business or Capital Plan
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1    11/26/18 John Hancock Trust Company Boston, MA 01/14/19
2    12/04/18 Franklin Savings Bank Franklin, NH 01/28/19
3    12/12/18 MFS Heritage Trust Company Boston, MA 01/28/19
4    02/25/19 Ankura Trust Company, LLC Fairfield, CT 03/22/19
5    4/25/19 Woodsville Guaranty Savings Bank Woodsville, NH 06/04/19
6    5/10/19 AB Trust Company New York, NY 06/04/19

     Reduction in Capital
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1    03/07/19 Primary Bank Bedford, NH 04/10/19

     Amendment to Bylaws
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1    12/10/18 Northeast Credit Union Porstmouth, NH 02/25/19
2    2/25/19 Members First Credit Union Manchester, NH 04/05/19
3    4/24/19 St. Mary's Bank Manchester, NH 05/30/19
4    6/28/19 Bellwether Community Credit Union

     Interstate Branch Office
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1    01/23/19 Newburyport Five Cents Savings Bank 141 Portsmouth Ave Exeter, NH 02/01/19
2    03/08/19 One Credit Union Newport, NH 03/29/19
3    03/01/19 JPMorgan Chase Bank, NA Nashua, NH 04/04/19
4    03/26/19 Mascoma Bank Lebanon, NH 04/09/19
5    04/24/19 Newburyport Five Cents Savings Bank 321 Lafayette Rd Hampton NH 05/08/19
6    07/10/19 Mascoma Bank 242-244 North Winooski Avenue Burlington VT 07/18/19
7    07/10/19 Mascoma Bank 431 Pine Street Burlington VT 07/18/19

     Interstate Branch Office Closure
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1    02/15/19 The Provident Bank 321 Lafayette Rd Hampton, NH 02/25/19

     New Branch Office
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1    12/07/18 Bank of New Hampshire 16-18 South Main Street Concord NH 01/02/19
2    3/4/19 Triangle Credit Union 360 Daniel Webster Highway, Merrimack, NH 03/11/19
3    04/03/19 Bellwether Community Credit Union 425-453 Commercial Street Manchester, NH 04/17/19
4    06/11/19 Primary Bank 23 Crystal Avenue Derry NH 06/11/19

     Branch Office Closure
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1    5/15/19 Northeast Credit Union Merrimack, NH 05/21/19

     New Loan Production Office
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1    04/08/19 Community National Bank 367 Route 120, Unit B-5 Lebanon, NH
            03766-1430 04/15/19

     Loan Production Office Closure
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1    07/22/19 The Provident Bank 20 Trafalgar Square, Suite 447 Nashua NH  03063 07/31/19

     Trade Name Requests
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1    04/16/19 John Hancock Trust Company To use trade name "Manulife Investment Management Trust Company" 04/24/19

     New Trust Company
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1    02/19/19 Janney Trust Co., LLC
2    02/25/19 Darwin Trust Company of New Hampshire, LLC
3    07/15/`9 Harbor Trust Company

     Dissolution of Trust Company
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1    09/19/17 Cambridge Associates Fiduciary Trust, LLC Boston, MA 02/05/19

     Trust Office Closure
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1    5/10/19 Charter Trust Company Rochester, NH 05/20/19

     New Trust Office
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1    02/25/19 Ankura Trust Company, LLC 140 Sherman Street, 4th Floor Fairfield, CT 06824 03/22/19

     Relocation of Trust Office
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1    01/23/19 Geode Capital Management Trust Company, LLC Relocate from: One Post Office Square, 20th Floor, Boston MA To: 100 Summer Street, 12th Flr, Boston, MA 02/01/19
2    03/15/19 Drivetrain Trust Company LLC Relocate from: 630 3rd Avenue, 21st Flr New York, NY 10017 To: 410 Park Avenue, Suite 900 New York, NY 10022 03/29/19
3    04/14/19 Boston Partners Trust Company Relocate from: 909 Third Avenue New York, NY 10022 To: One Grand Central Place 60 East 42nd Street, Ste 1550 New York, NY 10165 04/23/19

答案 1 :(得分:1)

您可以测试哪些行包含所有'\ xa0'(显示为空白)并排除。我追加到列表并转换为pandas数据框,但是您可以直接打印该行。

import requests
from bs4 import BeautifulSoup as bs
import pandas as pd

r = requests.get('https://www.nh.gov/banking/corporate-activities/index.htm')
soup = bs(r.content, 'lxml')
results = []

for tr in soup.select('tr'):
    row = [i.text for i in tr.select('th,td')]
    if row.count('\xa0') != len(row):
        results.append(row)

pd.set_option('display.width', 100)
df = pd.DataFrame(results)
df.style.set_properties(**{'text-align': 'left'})   
df.columns = df.iloc[0] 
df = df[1:]
df.fillna(value='', inplace=True)
print(df.head(20))

答案 2 :(得分:0)

不确定这是否是您想要的方式,也许还有一种更优雅的方式,但是我基本上是这样做的

  1. 熊猫拿桌子
  2. Pandas自动分配列,因此将列移动到第一行
  3. 发现行全为空
  4. 包含所有空值和上一行(它是子标头)的已删除行

    将熊猫作为pd导入

    print(“正在清除银行的NH部门...”) print()

    NHurl ='https://www.nh.gov/banking/corporate-activities/index.htm'

    df = pd.read_html(NHurl)[0] top_row = pd.DataFrame([df.columns],index = [-1]) df.columns = top_row.columns df = df.append(top_row,sort = True).sort_index()。reset_index(drop = True)

    null_rows = df [df.isnull()。values.all(axis = 1)]。index.tolist()

    drop_hdr_rows = [x-null中的x代表x-1] drop_rows = drop_hdr_rows + null_rows

    new_df = df [〜df.index.isin(drop_rows)]

输出:

print (new_df.to_string())
                                                    0                                                  1                                                  2                                                  3
2                                            New Bank                                           New Bank                                           New Bank                                           New Bank
3                                            12/11/18                                  The Millyard Bank                                                NaN                                                NaN
4                         Interstate Bank Combination                        Interstate Bank Combination                        Interstate Bank Combination                        Interstate Bank Combination
5                                            01/16/19  Optima Bank & Trust Company with and into Camb...                                     Portsmouth, NH                                           03/29/19
12  Amendment to Articles of Agreement or Incorpor...  Amendment to Articles of Agreement or Incorpor...  Amendment to Articles of Agreement or Incorpor...  Amendment to Articles of Agreement or Incorpor...
13                                           11/26/18                         John Hancock Trust Company                                         Boston, MA                                           01/14/19
14                                           12/04/18                              Franklin Savings Bank                                       Franklin, NH                                           01/28/19
15                                           12/12/18                         MFS Heritage Trust Company                                         Boston, MA                                           01/28/19
16                                           02/25/19                          Ankura Trust Company, LLC                                      Fairfield, CT                                           03/22/19
17                                            4/25/19                   Woodsville Guaranty Savings Bank                                     Woodsville, NH                                           06/04/19
18                                            5/10/19                                   AB Trust Company                                       New York, NY                                           06/04/19
19                               Reduction in Capital                               Reduction in Capital                               Reduction in Capital                               Reduction in Capital
20                                           03/07/19                                       Primary Bank                                        Bedford, NH                                           04/10/19
21                                Amendment to Bylaws                                Amendment to Bylaws                                Amendment to Bylaws                                Amendment to Bylaws
22                                           12/10/18                             Northeast Credit Union                                     Porstmouth, NH                                           02/25/19
23                                            2/25/19                         Members First Credit Union                                     Manchester, NH                                           04/05/19
24                                            4/24/19                                    St. Mary's Bank                                     Manchester, NH                                           05/30/19
25                                            6/28/19                  Bellwether Community Credit Union                                                NaN                                                NaN
26                           Interstate Branch Office                           Interstate Branch Office                           Interstate Branch Office                           Interstate Branch Office
27                                           01/23/19                Newburyport Five Cents Savings Bank                     141 Portsmouth Ave  Exeter, NH                                           02/01/19
28                                           03/08/19                                   One Credit Union                                        Newport, NH                                           03/29/19
29                                           03/01/19                            JPMorgan Chase Bank, NA                                         Nashua, NH                                           04/04/19
30                                           03/26/19                                       Mascoma Bank                                        Lebanon, NH                                           04/09/19
31                                           04/24/19                Newburyport Five Cents Savings Bank                       321 Lafayette Rd  Hampton NH                                           05/08/19
32                                           07/10/19                                       Mascoma Bank       242-244 North Winooski Avenue  Burlington VT                                           07/18/19
33                                           07/10/19                                       Mascoma Bank                     431 Pine Street  Burlington VT                                           07/18/19
34                   Interstate Branch Office Closure                   Interstate Branch Office Closure                   Interstate Branch Office Closure                   Interstate Branch Office Closure
35                                           02/15/19                                 The Provident Bank                      321 Lafayette Rd  Hampton, NH                                           02/25/19
36                                  New Branch Office                                  New Branch Office                                  New Branch Office                                  New Branch Office
37                                           12/07/18                              Bank of New Hampshire                16-18 South Main Street  Concord NH                                           01/02/19
38                                             3/4/19                              Triangle Credit Union         360 Daniel Webster Highway,  Merrimack, NH                                           03/11/19
39                                           04/03/19                  Bellwether Community Credit Union          425-453 Commercial Street  Manchester, NH                                           04/17/19
40                                           06/11/19                                       Primary Bank                        23 Crystal Avenue  Derry NH                                           06/11/19
41                              Branch Office Closure                              Branch Office Closure                              Branch Office Closure                              Branch Office Closure
42                                            5/15/19                             Northeast Credit Union                                      Merrimack, NH                                           05/21/19
43                         New Loan Production Office                         New Loan Production Office                         New Loan Production Office                         New Loan Production Office
44                                           04/08/19                            Community National Bank   367 Route 120, Unit B-5  Lebanon, NH  03766-1430                                           04/15/19
45                     Loan Production Office Closure                     Loan Production Office Closure                     Loan Production Office Closure                     Loan Production Office Closure
46                                           07/22/19                                 The Provident Bank    20 Trafalgar Square, Suite 447  Nashua NH 03063                                           07/31/19
51                                Trade Name Requests                                Trade Name Requests                                Trade Name Requests                                Trade Name Requests
52                                           04/16/19                         John Hancock Trust Company  To use trade name "Manulife Investment Managem...                                           04/24/19
53                                  New Trust Company                                  New Trust Company                                  New Trust Company                                  New Trust Company
54                                           02/19/19                              Janney Trust Co., LLC                                                NaN                                                NaN
55                                           02/25/19         Darwin Trust Company of New Hampshire, LLC                                                NaN                                                NaN
56                                           07/15/`9                               Harbor Trust Company                                                NaN                                                NaN
57                       Dissolution of Trust Company                       Dissolution of Trust Company                       Dissolution of Trust Company                       Dissolution of Trust Company
58                                           09/19/17          Cambridge Associates Fiduciary Trust, LLC                                         Boston, MA                                           02/05/19
59                               Trust Office Closure                               Trust Office Closure                               Trust Office Closure                               Trust Office Closure
60                                            5/10/19                              Charter Trust Company                                      Rochester, NH                                           05/20/19
61                                   New Trust Office                                   New Trust Office                                   New Trust Office                                   New Trust Office
62                                           02/25/19                          Ankura Trust Company, LLC  140 Sherman Street, 4th Floor  Fairfield, CT 0...                                           03/22/19
63                         Relocation of Trust Office                         Relocation of Trust Office                         Relocation of Trust Office                         Relocation of Trust Office
64                                           01/23/19        Geode Capital Management Trust Company, LLC  Relocate from: One Post Office Square, 20th Fl...                                           02/01/19
65                                           03/15/19                       Drivetrain Trust Company LLC  Relocate from: 630 3rd Avenue, 21st Flr  New Y...                                           03/29/19
66                                           04/14/19                      Boston Partners Trust Company  Relocate from: 909 Third Avenue  New York, NY ...                                           04/23/19