python爬虫笔记-day3
正则使用的注意点
re.findall("a(.*?)b","str"),能够返回括号中的内容,括号前后的内容起到定位和过滤的效果
原始字符串r,待匹配字符串中有反斜杠的时候,使用r能够忽视反斜杠带来的转义的效果
点号默认情况匹配不到\n
\s能够匹配空白字符,不仅仅包含空格,还有\t|\r\n
xpath学习重点
使用xpath helper或者是chrome中的copy xpath都是从element中提取的数据,但是爬虫获取的是url对应的响应,往往和elements不一样
获取文本
a/text() 获取a下的文本
a//text() 获取a下的所有标签的文本
//a[text()='下一页'] 选择文本为下一页三个字的a标签
@符号
a/@href
//ul[@id="detail-list"]
//
在xpath最前面表示从当前html中任意位置开始选择
li//a 表示的是li下任何一个标签
lxml使用注意点
lxml能够修正HTML代码,但是可能会改错了
使用etree.tostring观察修改之后的html的样子,根据修改之后的html字符串写xpath
lxml 能够接受bytes和str的字符串
提取页面数据的思路
先分组,渠道一个包含分组标签的列表
遍历,取其中每一组进行数据的提取,不会造成数据的对应错乱
xpath的包含
//div[contains(@class,'i')]
实现爬虫的套路
准备url
准备start_url
url地址规律不明显,总数不确定
通过代码提取下一页的url
xpath
寻找url地址,部分参数在当前的响应中(比如,当前页码数和总的页码数在当前的响应中)
准备url_list
页码总数明确
url地址规律明显
发送请求,获取响应
添加随机的User-Agent,反反爬虫
添加随机的代理ip,反反爬虫
在对方判断出我们是爬虫之后,应该添加更多的headers字段,包括cookie
cookie的处理可以使用session来解决
准备一堆能用的cookie,组成cookie池
如果不登录
准备刚开始能够成功请求对方网站的cookie,即接收对方网站设置在response的cookie
下一次请求的时候,使用之前的列表中的cookie来请求
如果登录
准备多个账号
使用程序获取每个账号的cookie
之后请求登录之后才能访问的网站随机的选择cookie
提取数据
确定数据的位置
如果数据在当前的url地址中
提取的是列表页的数据
直接请求列表页的url地址,不用进入详情页
提取的是详情页的数据
确定url
发送请求
提取数据
返回
如果数据不在当前的url地址中
在其他的响应中,寻找数据的位置
从network中从上往下找
使用chrome中的过滤条件,选择出了js,css,img之外的按钮
使用chrome的search all file,搜索数字和英文
数据的提取
xpath,从html中提取整块的数据,先分组,之后每一组再提取
re,提取max_time,price,html中的json字符串
json
保存
保存在本地,text,json,csv
保存在数据库
- Python爬虫学习笔记Day3
- [笔记]python爬虫学习笔记(一)——网页的获取和打印
- Python爬虫学习笔记
- 【学习笔记】Python爬虫-豆瓣电影所有短评
- Python爬虫框架Scrapy 学习笔记 10.2 -------【实战】 抓取天猫某网店所有宝贝详情
- Python爬虫学习笔记——防豆瓣反爬虫
- [笔记]python爬虫:淘宝商品价格信息爬取示例
- python学习笔记——爬虫学习中的重要库urllib
- python爬虫笔记day1 BS4库的使用
- python笔记(1):爬虫
- python学习笔记(10)--爬虫下载煎蛋图片
- Python爬虫urllib笔记(四)之使用BeautifulSoup爬取百度贴吧
- [Python]网络爬虫学习笔记,爬取东南大学SEU-wlan的流量使用情况
- python爬虫笔记
- python 爬虫学习笔记(1)
- Python的Scrapy爬虫框架简单学习笔记
- ”Python开发简单爬虫“慕课网课程学习笔记1
- Python学习笔记(四) -- 简单的爬虫
- 丹的Python学习笔记Day3
- 【Python学习笔记(三)】:爬虫用到的知识点总结