Python 没有从会议记录中删除缺失的数据

Python 没有从会议记录中删除缺失的数据,python,database,web-scraping,beautifulsoup,missing-data,Python,Database,Web Scraping,Beautifulsoup,Missing Data,我试图从《议事录》中搜集数据,这是英国国会众议院所有发言的官方逐字记录。这就是我要刮的地方:简而言之,我想刮除这一页上的每个“提及”容器,以及之后的50页 但我发现,当我的刮板“完成”时,它只收集了990个容器上的数据,而不是完整的1010个。20个容器上的数据丢失,就像跳过了一页。当我只将页面范围设置为(0,1)时,它无法收集任何值。当我将其设置为(0,2)时,它只收集第一页的值。要求它收集52页的数据也无济于事。我认为这可能是因为我没有给URL足够的时间来加载,所以我在scraper的爬网中

我试图从《议事录》中搜集数据,这是英国国会众议院所有发言的官方逐字记录。这就是我要刮的地方:简而言之,我想刮除这一页上的每个“提及”容器,以及之后的50页

但我发现,当我的刮板“完成”时,它只收集了990个容器上的数据,而不是完整的1010个。20个容器上的数据丢失,就像跳过了一页。当我只将页面范围设置为(0,1)时,它无法收集任何值。当我将其设置为(0,2)时,它只收集第一页的值。要求它收集52页的数据也无济于事。我认为这可能是因为我没有给URL足够的时间来加载,所以我在scraper的爬网中添加了一些延迟。这没有解决任何问题

有人能给我提供一些关于我可能缺少什么的见解吗?我想确保我的刮板正在收集所有可用的数据

pages = np.arange(0, 52)

for page in pages:

     hansard_url = "https://hansard.parliament.uk/search/Contributions? searchTerm=%22civilian%20casualties%22&startDate=01%2F01%2F1988%2000%3A00%3A00&endDate=07%2F14%2F2020%2000%3A00%3A00"

     full_url = hansard_url + "&page=" + str(page) + "&partial=true"
     page = get(full_url)
     html_soup = BeautifulSoup(page.text, 'html.parser')
     mention_containers = html_soup.find_all('div', class_="result contribution")

     time.sleep(randint(2,10))


     for mention in mention_containers:

          topic = mention.div.span.text
          topics.append(topic)

          house = mention.find("img")["alt"]

          if house == "Lords Portcullis":
                 houses.append("House of Lords")
          elif house == "Commons Portcullis":
                 houses.append("House of Commons")
          else:
                 houses.append("N/A")

          name = mention.find('div', class_="secondaryTitle").text
          names.append(name)

          date = mention.find('div', class_="").text
          dates.append(date)

          time.sleep(randint(2,10))


 hansard_dataset = pd.DataFrame(
   {'Date': dates, 'House': houses, 'Speaker': names, 'Topic': topics})
  )

  print(hansard_dataset.info())
  print(hansard_dataset.isnull().sum())
  hansard_dataset.to_csv('hansard.csv', index=False, sep="#")

非常感谢帮助我解决此问题的任何帮助。

服务器在第48页返回空容器,因此从第1页到第51页的总结果为1000(包括):

印刷品:

...

Page 41...
Page 42...
Page 43...
Page 44...
Page 45...
Page 46...
Page 47...
Page 48...
Empty container!    # <--- here is the server error
Page 49...
Page 50...
Page 51...
                 Date             House                                            Speaker                                         Topic
0        14 July 2014    House of Lords                                     Baroness Warsi                  Gaza debate in Lords Chamber
1        3 March 2016    House of Lords                                        Lord Touhig   Armed Forces Bill debate in Grand Committee
2     2 December 2015  House of Commons                                   Mr David Cameron       ISIL in Syria debate in Commons Chamber
3        3 March 2016    House of Lords                                                      Armed Forces Bill debate in Grand Committee
4       27 April 2016    House of Lords                                                        Armed Forces Bill debate in Lords Chamber
..                ...               ...                                                ...                                           ...
995      18 June 2003    House of Lords                               Lord Craig of Radley        Defence Policy debate in Lords Chamber
996  7 September 2004    House of Lords                                           Lord Rea                  Iraq debate in Lords Chamber
997  14 February 1994    House of Lords  The Parliamentary Under-Secretary of State, Mi...             Landmines debate in Lords Chamber
998   12 January 2000  House of Commons  The Minister of State, Foreign and Commonwealt...  Serbia And Kosovo debate in Westminster Hall
999  26 February 2003    House of Lords                                           Lord Rea                  Iraq debate in Lords Chamber

[1000 rows x 4 columns]
。。。
第41页。。。
第42页。。。
第43页。。。
第44页。。。
第45页。。。
第46页。。。
第47页。。。
第48页。。。

空容器!#如果您使用
请求
美化组
,那么添加时间毫无意义——它不是Selenium,不运行JavaScript,也不需要等待。最好将HTML保存在文件中并在浏览器中打开,以查看得到的内容。也许有一些不同于你所期望的。也许会有一些关于这个问题的信息。或者可能第一个页面有不同的URL,或者当我使用
page=0
在浏览器中运行此页面时,您必须在没有
page=0的情况下加载它,然后我看到
加载搜索结果时出错。请稍后再试。
标准规则:应使用
print()
检查变量中的值。通过这种方式,您应该检查每个页面上有多少项,如果某个页面给出的值较少,则在浏览器中检查此页面。可能有不同的项目有不同的标签,等等。哇,非常感谢你,你是对的,这在查找服务器错误方面真的很有效!但我有一个问题:当我手动转到第48页时,我看到容器不是空的。这是否意味着刮板无法拾取这些容器,我应该手动输入这些值?对不起,如果这是一个愚蠢的问题,所有的帮助是感激的!参考:@xrichervis当你手动运行时,服务器错误出现在第41页:我认为结果的排序不同。是的,我在发表评论后注意到了这一点。奇怪的我认为我对这些缺失的值无能为力。再次感谢你的帮助,安德烈!
...

Page 41...
Page 42...
Page 43...
Page 44...
Page 45...
Page 46...
Page 47...
Page 48...
Empty container!    # <--- here is the server error
Page 49...
Page 50...
Page 51...
                 Date             House                                            Speaker                                         Topic
0        14 July 2014    House of Lords                                     Baroness Warsi                  Gaza debate in Lords Chamber
1        3 March 2016    House of Lords                                        Lord Touhig   Armed Forces Bill debate in Grand Committee
2     2 December 2015  House of Commons                                   Mr David Cameron       ISIL in Syria debate in Commons Chamber
3        3 March 2016    House of Lords                                                      Armed Forces Bill debate in Grand Committee
4       27 April 2016    House of Lords                                                        Armed Forces Bill debate in Lords Chamber
..                ...               ...                                                ...                                           ...
995      18 June 2003    House of Lords                               Lord Craig of Radley        Defence Policy debate in Lords Chamber
996  7 September 2004    House of Lords                                           Lord Rea                  Iraq debate in Lords Chamber
997  14 February 1994    House of Lords  The Parliamentary Under-Secretary of State, Mi...             Landmines debate in Lords Chamber
998   12 January 2000  House of Commons  The Minister of State, Foreign and Commonwealt...  Serbia And Kosovo debate in Westminster Hall
999  26 February 2003    House of Lords                                           Lord Rea                  Iraq debate in Lords Chamber

[1000 rows x 4 columns]