append 把列表作为一个元素放在原列表里
extend 在列表的末尾一次性添加多个元素
insert 在任意位置添加一个元素
split 字符串拆分
format 字符串格式化
replace 字符串替换
json.loads() 将文本转换成json格式
json.dumps() 将文本转换成json数据
extract() 在scrapy框架提取文字最常用
extract_first() 在一个列表里提取第一个值
meta 在scrapy中解决参数的传递
dont_fiter 在scrapy中解决数据的过滤
常见反爬
User-Agent识别
cookie
ajax
md5加密
数据呈现形式
1、直接在源码获取
2、通过ajax异步加载
3、通过js传递,浏览器渲染
请求头信息识别
比如referer,content-type,请求方法(post,get)
构造相应的请求头信息,比如referer,我们在提取URL的时候,要把URL所在的页面的URL也存储起来,并放到request.herders.
异步加载
我们需要分析页面的网络请求,从中找出想要的数据相关的请求,并分析它的请求头信息,参数,cookie,然后根据这些信息构造我们的请求通常来说都是ajax请求
请求参数加密
学习要点
requests
scrapy
json与字典的转换
数据解析的几种方式如xpath 正则 css选择器 bs4
scrapy爬虫框架
新建项目 scrapy startproject xxxx(项目名字)
创建爬虫 scrapy genspider xxxxx(爬虫名字)网站域名
运行爬虫 项目文件夹 scrapy crawl 爬虫名
scrapy——url构造翻页
[“https//www.xicidaili.com/nn/{page}” for page in range(1,365)]
翻页:构造一个关于下一页url地址的request请求传递给调度器
scrapy.cfg: 项目的配置文件
hellospider/: 该项目的python模块。之后您将在此加入代码。
hellospider/items.py: 需要提取的数据结构定义文件。
hellospider/middlewares.py: 是和Scrapy的请求/响应处理相关联的框架。
hellospider/pipelines.py: 用来对items里面提取的数据做进一步处理,如保存等。
hellospider/settings.py: 项目的配置文件。
hellospider/spiders/: 放置spider代码的目录。
pipeline 文件储存示范
with open(‘hellospider/items.json’) as f:
rownum = 0
new_list = json.load(f)
for i in new_list:
rownum += 1
print(""“line{}: title:{}, author:{}, reply:{}.”"".format(rownum,
i[‘title’][0],
i[‘author’][0],
i[‘reply’][0]))
https://zhuanlan.zhihu.com/p/58944212 知乎scrapy的文件保存
基于终端的文件保存
scrapy crawl myspider -o data.json
scrapy crawl myspider -o data.csv
scrapy crawl myspider -o data.xml
爬虫主入口
from scrapy import cmdline
cmdline. execute(‘scrapy crawl db’.split())
scrapy post请求
https://blog.csdn.net/qq_40138248/article/details/103719469?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control
https://www.cnblogs.com/zhang-zi-yi/p/10749432.html
https://www.cnblogs.com/bobo-zhang/p/10069001.html
https://blog.csdn.net/benben0729/article/details/80811336
scrapy基于管道的数据保存
csv:https://zhuanlan.zhihu.com/p/58944212
json:https://blog.csdn.net/muyao987/article/details/105842161
https://blog.csdn.net/weixin_42122125/article/details/105554653
动态获取cookie
header={
“User-Agent”:“Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36”
}
session=requests.session()
session.get(‘https://www.lagou.com/c/approve.json?companyIds=192853%2C122024079%2C198619%2C8558%2C122475170%2C142626%2C84502297%2C52809%2C111437%2C494648%2C40189%2C52101%2C177151%2C117881978’,headers=headers)
cookies=session.cookies
print(cookies.get_dict())
排名前十的招聘网站
1、 前程无忧网(www.51job.com)
2、 中华英才网(www.chinahr.com)
3、 智联招聘网(www.zhaopin.com)
4、 中华人才热线 (www.cjol.com)
5、 应届生求职网(www.yingjiesheng.com)
6、 卓博人才网(www.jobcn.com)
7、 数字英才网(www.01hr.com)
8、 精英招聘网(www.1010job.com)
9、 528招聘网(www.528.com.cn)
10、 中国人力资源开发网(www.chinahrd.net)