python爬虫学习小组 任务1 |
您所在的位置:网站首页 › 21世纪初我国取得了哪些典型的外交成就 › python爬虫学习小组 任务1 |
任务1.1 学习get与post请求
Requests库 是python的第三方库,是目前公认的爬取网页最好的工具。 1.1.1 Requests库有7个主要的方法: requests.request() 构造一个请求,支撑以下6个方法的基础方法 requests.get() 获取HTML页面的主要方法,对应于HTTP的GET requests.head() 获取HTML页面头信息的方法,对应于HTTP的HEAD requests.post() 向HTML页面提交POST请求的方法,对应于HTTP的POST requests.put() 向HTML页面提交PUT请求的方法,对应与HTTP的PUT requests.patch() 向HTML页面提交局部修改请求,对应于HTTP的PATCH requests.delete() 向HTML页面提交删除请求,对应于HTTP的DELETE 1.1.2 Requests库的get方法获得一个网页最简单的方法就是一行代码: >>> r = requests.get(url)![]() å\x85³äº\x8eç\x99¾åº¦ About Baidu ©2017;Baidu;使ç\x94¨ç\x99¾åº¦å\x89\x8då¿\x85读; æ\x84\x8fè§\x81å\x8f\x8dé¦\x88;京ICPè¯\x81030173å\x8f·; ![]() 关于百度 About Baidu ©2017;Baidu;使用百度前必读; 意见反馈;京ICP证030173号; 理论还在学习,待补充。。。 爬取豆瓣电影250参考代码如下: # -*- coding:utf-8 -*- import requests from bs4 import BeautifulSoup import re import time import sys def getHTMLText(url,k): try: if(k==0):kw={} else: kw={'start':k,'filter':''} r = requests.get(url,params=kw,headers={'User-Agent': 'Mozilla/4.0'}) r.raise_for_status() r.encoding = r.apparent_encoding return r.text except: print("Failed!") def getData(html): soup = BeautifulSoup(html, "html.parser") movieList=soup.find('ol',attrs={'class':'grid_view'})#找到第一个class属性值为grid_view的ol标签 moveInfo=[] for movieLi in movieList.find_all('li'):#找到所有li标签 data = [] #得到电影名字 movieHd=movieLi.find('div',attrs={'class':'hd'})#找到第一个class属性值为hd的div标签 movieName=movieHd.find('span',attrs={'class':'title'}).getText()#找到第一个class属性值为title的span标签 #也可使用.string方法 data.append(movieName) #得到电影的评分 movieScore=movieLi.find('span',attrs={'class':'rating_num'}).getText() data.append(movieScore) #得到电影的评价人数 movieEval=movieLi.find('div',attrs={'class':'star'}) movieEvalNum=re.findall(r'\d+',str(movieEval))[-1] data.append(movieEvalNum) # 得到电影的短评 movieQuote = movieLi.find('span', attrs={'class': 'inq'}) if(movieQuote): data.append(movieQuote.getText()) else: data.append("无") print(outputMode.format(data[0], data[1], data[2],data[3],chr(12288))) #将输出重定向到txt文件 output=sys.stdout outputfile=open("moviedata.txt",'w',encoding='utf-8') sys.stdout=outputfile outputMode= "{0:{4}^20}\t{1:^10}\t{2:^10}\t{3:{4} |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |