[Python]爬虫常用函数及格式

requests 库

安装

pip install requests

导入

import requests

获取url信息

response = requests.get(url,header)
response.text
文本文件用text
response.content
多媒体文件用content 同时在读取和写入时使用’wb’参数

获取信息本地保存

with open('xxxx.html','w',encoding = 'utf-8') as fp:
fp.write(response.text)

lxml 库

安装

pip install lxml

导入

import lxml
from lxml import etree

解析html

root = etree.HTML(response.text)

节点定位

‘/子节点’,’//任意级的子孙节点’,[@节点属性=”节点属性值”],/text() 表示取标签的文字,/@属性 代表取属性的值 例如:
root.xpath('//div[@class="bbs-sl-web-post"]/ul/li/div[@class="post-title"]/a/text()')
返回值为列表,所有符合xpath的内容,如果只有一个值,可以用[0]的方式取文本

节点内容保存

如果同时获取了多个标签,可以利用append构造2维列表
info[]
for i in range(len(names)):
info.append(names[i],author[i],time[i])

csv库

引入库

import csv

csv内容构成

filednames = ['name','author','time']
确定csv文件的表头
f = open('xxxx.csv','a+',encoding = 'utf-8')
a+的意思是追加写入,而非w的覆盖写入
f_csv = csv.writer(f)
确定写入方式
f_csv.writerows(info)
按行写入
f.close()

json库

导入

import json

dump成json字符串

目前有一个字典items,items[0]形式为{‘name’:’abcdefg’,’href’=’http://www.baidu.com’}
字典对象无法使用write向文件里直接写入,利用json.dumps可以转化成字符串
fp = open('xxx.csv','a',encoding = 'utf-8')
for item in items:
json_string = json.dumps(item,ensure_ascii = false)
将字典转化成json字符串,并不以字节方式存储
fp.write(json_string + '\n')
利用’\n’在每个item后面加个换行
fp.close()

json字符串解析

json_obj = json.loads(json_string)
json字符串转对象(字典)
abc = json_obj['data'][datas]
取data节点下的datas节点的全部内容,保存到abc列表,可以用abc做for循环,提取子数据

原创文章,作者:熊阿初,如若转载,请注明出处:https://www.guofc.com/1012.html

Like (0)
熊阿初的头像熊阿初
Previous 2023年2月6日
Next 2023年3月13日

相关推荐

发表回复

Please Login to Comment