我一直在尝试从网站上提取数据并在Windows 10上使用python 2.7.13进行打印。它给出了以下错误:
Traceback (most recent call last):
File "C:\Python27\Scripts\i1.py", line 5, in <module>
data=urlparse.urlencode(values)
AttributeError: 'function' object has no attribute 'urlencode'
以下是代码:
from urllib import urlopen
from urlparse import urlparse
url='http://pythonprogramming.net'
values={'s':'basic','submit':'search'}
data=urllib.parse.urlencode(values)
data=data.encode('utf-8')
req=urllib.request.Request(url,data)
resp=urllib.request.urlopen(req)
respData=resp.read()
print(respData)
从Python 2开始,我写了from urllib import urlopen
和from urlparse import urlparse
而不是import urllib.request
和import urllib.parse
答案 0 :(得分:1)
urllib模块中没有解析器对象。您需要直接使用urlopen并将url作为参数传递。以下是修改后的工作代码:
import urllib
from urllib import urlopen
url='http://pythonprogramming.net'
values={'s':'basic','submit':'search'}
data=urllib.urlencode(values)
data=data.encode('utf-8')
response=urllib.urlopen(url,data)
responseData=response.read()
print responseData
您还可以使用beautifulSoup库来抓取您网站上的数据。它非常易于使用。以下是与您的示例相关的代码:
import urllib
from urllib import urlopen
from bs4 import BeautifulSoup
url='http://pythonprogramming.net'
page = urllib.urlopen(url)
soup = BeautifulSoup(page, "lxml")
print soup