Python 3.x 使用Python抓取多个WikiTable

Python 3.x 使用Python抓取多个WikiTable,python-3.x,web-scraping,beautifulsoup,Python 3.x,Web Scraping,Beautifulsoup,我是Python的初学者。我有一项任务要从维基百科页面上抓取信息表。我想使用以下代码进行刮取: from pandas.io.html import read_html page = requests.get('https://de.wikipedia.org/wiki/Köln') wikitables = read_html(page, attrs={"class":"hintergrundfarbe5 float-right toptextcells info

我是Python的初学者。我有一项任务要从维基百科页面上抓取信息表。我想使用以下代码进行刮取:

from pandas.io.html import read_html
page = requests.get('https://de.wikipedia.org/wiki/Köln')
wikitables = read_html(page, attrs={"class":"hintergrundfarbe5 float-right toptextcells infobox"})
print("Extracted {num} wikitables".format(num=len(wikitables)))

wikitables[0]
但是由于Url中的特殊字符Köln,我得到了以下错误:请帮助我在程序中的何处进行修改以获取信息

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-168-d9bd1e1d7548> in <module>
      2 page = requests.get('https://de.wikipedia.org/wiki/Köln')
      3 Soup = BeautifulSoup(page.content)
----> 4 wikitables = read_html(page, attrs={"class":"hintergrundfarbe5 float-right toptextcells infobox"})
      5 print("Extracted {num} wikitables".format(num=len(wikitables)))
      6 

~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\io\html.py in read_html(io, match, flavor, header, index_col, skiprows, attrs, parse_dates, tupleize_cols, thousands, encoding, decimal, converters, na_values, keep_default_na, displayed_only)
   1092                   decimal=decimal, converters=converters, na_values=na_values,
   1093                   keep_default_na=keep_default_na,
-> 1094                   displayed_only=displayed_only)

~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\io\html.py in _parse(flavor, io, match, attrs, encoding, displayed_only, **kwargs)
    914             break
    915     else:
--> 916         raise_with_traceback(retained)
    917 
    918     ret = []

~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\compat\__init__.py in raise_with_traceback(exc, traceback)
    418         if traceback == Ellipsis:
    419             _, _, traceback = sys.exc_info()
--> 420         raise exc.with_traceback(traceback)
    421 else:
    422     # this version of raise is a syntax error in Python 3

TypeError: Cannot read object of type 'Response'
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在里面
2页=请求。获取('https://de.wikipedia.org/wiki/Köln')
3汤=美汤(第页内容)
---->4 wikitables=read_html(第页,属性={“类”:“hintergrundfarbe5浮动右toptextcells信息框”})
5打印(“提取的{num}wikitables”。格式(num=len(wikitables)))
6.
~\AppData\Local\Continuum\anaconda3\lib\site packages\pandas\io\html.py(io、匹配、风格、标题、索引列、skiprows、属性、解析日期、元组列、千、编码、十进制、转换器、na值、保留默认值、仅显示)
1092十进制=十进制,转换器=转换器,na_值=na_值,
1093保留默认值=保留默认值,
->1094仅显示=仅显示)
~\AppData\Local\Continuum\anaconda3\lib\site packages\pandas\io\html.py在解析中(风味、io、匹配、属性、编码、仅显示、**kwargs)
914休息
915其他:
-->916带回溯的raise_(保留)
917
918 ret=[]
带回溯的raise\U中的~\AppData\Local\Continuum\anaconda3\lib\site packages\pandas\compat\\uuuuuu init\uuuuuuuuuu.py(exc,回溯)
418如果回溯==省略号:
419 u,u,traceback=sys.exc_info()
-->420带回溯的提升exc(回溯)
421其他:
422#此版本的raise在Python 3中是一个语法错误
TypeError:无法读取“Response”类型的对象

这与美丽的克伦无关

你需要改变

wikitables = read_html(page, attrs={"..."})


而且应该可以用。

太好了,谢谢!!是的,克伦很漂亮,。。。
wikitables = read_html(page.text, attrs={"..."})