一、基于AJAX请求页面的爬取
爬取网页:http://www.jy.whzbtb.com/V2PRTS
通过抓包,我们不难发现这是一个AJAX请求,我们需要携带必要的参数才能获取每一页的页面内容,具体可以看下面的源码
import urllib.request
import urllib.error
import urllib.parse
"""一、添加header"""
#1.1、以字典的形式设置headers
def get_one_page(i):
header={
"User-Agent":'User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36',
}
web_url= "http://www.jy.whzbtb.com/V2PRTS/WinningPublicityInfoList.do"
postData = urllib.parse.urlencode({
"page": str(i),
"rows": "10"
}).encode('utf-8')
#encode:将Unicode码转为utf-8码
req = urllib.request.Request(url=web_url,
data=postData,
headers=header
)
try:
response = urllib.request.urlopen(req, timeout=3)
except urllib.error.URLError as e:
if hasattr(e, 'code'):
print(e.code)
if hasattr(e, 'reason'):
print(e.reason)
else:
webData=response.read().decode('utf-8')
print(webData)
get_content(webData)
def get_content(webData):
pass #提取信息,略
for i in range(1,20): #这里选择爬取的页数
try:
get_one_page(i)
except:
get_one_page(i)
感兴趣的朋友们可以看看 ,共同学习,共同提高!!