Python爬虫

import requests

Res=requests.get(URl)  返回Response类的对象

标签内所有文字

HTML:

<!-- -->作用相当于python中的#

<style>标签中定义class属性的样式用点.(不唯一),id属性用井号键#(唯一)

提取数据:

当你直接爬取界面上看到的url,打印出网页访问状态码和网页源代码,当爬取的状态码是200,网页源码内容却与直接从网页上看到的不符时,那么就说明网页是动态网页。

直接提取

from bs4 import BeautifulSoup

soup = BeautifulSoup(字符串,'html.parser')

其次,括号中的参数:标签和属性可以任选其一,也可以两个一起使用,这取决于我们要在网页中提取的内容。

不能直接提取:

Network

进入的时候代码不是在第一个访问中

XHR用于传输数据,它能传输很多种数据因为有它的存在,人们不必刷新/跳转网页,即可加载新的内容。

json是被传输的一种数据格式。

找XHR

JOSN

当前页面加载更多内容时:

传递url参数

Query String Parameters里的内容,直接复制下来,封装为一个字典

改变需要修改的值,传递给params

Header(请求头)

headers = {

    'origin':'https://y.qq.com',

    # 请求来源,本案例中其实是不需要加这个参数的,只是为了演示

    'referer':'https://y.qq.com/n/yqq/song/004Z8Ihr0JIu5s.html',

    # 请求来源,携带的信息比“origin”更丰富,本案例中其实是不需要加这个参数的,只是为了演示

    'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',

    # 标记了请求从什么设备,什么浏览器上发出

    }

get请求会应用于获取网页数据,比如我们之前学的requests.get(),

post请求则应用于向网页提交数据,比如提交表单类型数据(像账号密码就是网页表单的数据)。

selenium控制浏览器

# 本地Chrome浏览器设置方法

浏览器可见

from selenium import webdriver #从selenium库中调用webdriver模块

driver = webdriver.Chrome() # 设置引擎为Chrome,真实地打开一个Chrome浏览器

后台运行

# 本地Chrome浏览器的静默模式设置:

from selenium import  webdriver #从selenium库中调用webdriver模块

from selenium.webdriver.chrome.options import Options # 从options模块中调用Options类

 

chrome_options = Options() # 实例化Option对象

chrome_options.add_argument('--headless') # 把Chrome浏览器设置为静默模式

driver = webdriver.Chrome(options = chrome_options) # 设置引擎为Chrome,在后台默默运行

 

driver.page_source获取网页源码

driver.get('https://www.baidu.com') # 打开网页

下图是提取一个时候的方法,提取多个element后加s即可

返回:返回WebElement类对象,

driver.close() # 关闭浏览器

定时:

利用CPU的多个核同时执行任务的技术,我们把它叫做“多进程”。

异步:并发执行

 queue模块

Scrapy爬虫框架

Scheduler(调度器)部门主要负责处理引擎发送过来的requests对象(即网页请求的相关信息集合,包括params,data,cookies,request headers…等),会把请求的url以有序的方式排列成队,并等待引擎来提取(功能上类似于gevent库的queue模块)。

Downloader(下载器)部门则是负责处理引擎发送过来的requests,进行网页爬取,并将返回的response(爬取到的内容)交给引擎。它对应的是爬虫流程【获取数据】这一步。

Spiders(爬虫)部门是公司的核心业务部门,主要任务是创建requests对象和接受引擎发送过来的response(Downloader部门爬取到的内容),从中解析并提取出有用的数据。它对应的是爬虫流程【解析数据】和【提取数据】这两步。

Item Pipeline(数据管道)部门则是公司的数据部门,只负责存储和处理Spiders部门提取到的有用数据。这个对应的是爬虫流程【存储数据】这一步。

Downloader Middlewares(下载中间件)的工作相当于下载器部门的秘书,比如会提前对引擎大boss发送的诸多requests做出处理。

Spider Middlewares(爬虫中间件)的工作则相当于爬虫部门的秘书,比如会提前接收并处理引擎大boss发送来的response,过滤掉一些重复无用的东西。

创建Scrapy项目的命令:scrapy startproject xxxx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值