2019-04-01

爬取一个网页的信息

总结一下今天学到的内容

首先是requests库

requests是一个网络请求库,可以实现和浏览器一样的对HTTP的请求来获取网站信息
比如

import requests
url='https://maoyan.com/board/4'
#也可以传递params和headers
payload = {'key1': 'value1', 'key2': 'value2'}
headers = {'content-type': 'application/json'}
r=requests.get(url,params=payload,headers=headers)
print(r.text)
print(r.url)
#输出:http://httpbin.org/get?key2=value2&key1=value1
print(r.cookie)

然后就可以看到运行出的页面源代码了
当然,requests不止能get,还有
GET 请求获取URL位置的资源
HEAD 请求获取URL位置资源的响应消息报告,即获得该资源的头部信息
POST 请求向URL位置的资源后附加新的数据
PUT 请求向URL位置储存一个资源,覆盖原URL位置的资源
PATCH 请求向局部更新URL位置的资源,即改变该处资源的部分欸容
DELETE 请求删除URL位置储存的资源
另外post传参主要是data参数,方法和get的params一样

其次是lxml

lxml是xml,html的解析库
看代码

from lxml import etree
def parse(text)
html=HTML.etree(text)
name = html.xpath('//div[@class="movie-item-info"]/p[@class="name"]/a/@title')
autor = html.xpath('//p[@class="star"]/text()')
print(name)
image.png

再然后是写入文件

以后读写文件都使用with open语句,不要再像以前那样用f = open()这种语句了
with open("文件.属性”,ensure_ascii=False) as f
False代表utf-8型,写入文件就可以f.write(***)

紧接上一个问题

f.write(data)中data的类型只能是str

import json
item=json.dumps(data)

json.dumps可以把dict型转换为str
json.load可以把str转换为dict

最后两个小知识点

zip拉链函数

name = html.xpath('//div[@class="movie-item-info"]/p[@class="name"]/a/@title')
    autor = html.xpath('//p[@class="star"]/text()')
    for name, autor in zip(name, autor):


       print item['name'] = name
        item['autor'] = autor
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容