结构化数据
一般为JSON格式
非结构化数据
文本,电话,邮箱地址:正则表达式
HTML文件:正则表达式,xpath,css选择器
Xpath(路径表达)
| nodename | 选取此节点的所有子节点 |
| / | 从根节点选取 |
| // | 从匹配选择的当前节点选择文档中的节点,而不考虑位置 |
| . | 选取当前节点 |
| .. | 选取当前节节点的父节点 |
| @ | 选取属性 |
一些带谓语的路径表达式
| /bookstore/book[1] | 选取属于bookstore子元素的第一个book元素 |
| /bookstore/book[last()] | 选取属于bookstore子元素的最后一个book元素 |
| /bookstore/book[last()-1] | 选取属于bookstore子元素的倒数第二个book元素 |
| /bookstore/book[position()<3] | 选取最前面两个属于bookstore元素的子元素的book元素 |
| //title[@lang] | 选取所有名位lang属性的title元素 |
| //title[@lang=‘eng’] |
选取所有title元素,且这些元素拥有eng和lang属性 |
| /bookstore/book[price>35.00] | 选取属于bookstore子元素的所有book元素,且其中的price元素的值必须大于35 |
| /bookstore/book[price>35.00]/title | 选取属于bookstore子元素的所有book元素的所有title元素,且price元素值必须大于35 |
爬虫流程
第一步:
通过requests来获得网站源代码
import requests
#通过requests来获取网站源代码
url = '网站地址'
heades = {''' user-agent:xxxxxxxxxxxxxxxxxxx
'''} #绕过反爬机制(开发者工具里的user-agen)
requests.get(url,headers=headers).text
第二步:
对获取代码进行解析
使用lxml 库中的etree进行解析
etree.HTML() 是 Python 中 lxml 库的一部分,用于解析 HTML 文档。它将字符串格式的 HTML 文档转换为一个可操作的 Element 对象。可以自动地修复不完整的HTML代码。
from lxml import etree
x = etree.HTML()
xxx_url=x.xpath( '')
print(xxx_url)#可以加个for循环遍历输出
第三步
把文件存在本地
用之前学过的写入文件存爬取的图片
with open ()as f

被折叠的 条评论
为什么被折叠?



