最新动态
Python爬虫 从小白到高手 各种最新案例! Urllib Xpath JsonPath BeautifulSoup
2024-12-24 11:49

1.什么是互联网爬虫

如果我们把互联网比作一张大的蜘蛛网,那一台计算机上的数据便是蜘蛛网上的一个猎物,而爬虫程序就是一只小蜘蛛,沿着蜘蛛网抓取自己想要的数据

解释1:通过一个程序,根据Url()进行爬取网页,获取有用信息

解释2:使用程序模拟浏览器,去向服务器发送请求,获取响应信息

2.爬虫核心?

1.爬取网页:爬取整个网页 包含了网页中所有得内容

2.解析数据:将网页中你得到的数据 进行解析

3.难点:爬虫和反爬虫之间的博弈

3.爬虫的用途

数据分析/人工数据集

社交软件冷启动

舆情监控

下载爬取的东西

http/https 80/443 s wd = 周杰伦 #

协议 主机 端口号 路径 参数 锚点

常见端口号: http 80 https 443

 
 

加个cookie成功

 
 
  1. get:urllib.parse.urlencode) 多参数
 
 
  1. post请求
百度翻译

编码之后 必须调用encode方法 data = urllib.parse.urlencode(data).encode('utf-8')

参数是放在请求对象定制的方法

request = urllib.request.Request (url=url,data=data, headers=headers )

 
  
 

#

#

#

page 1 2 3 4

start 0 20 40 60

规律: start数值其实= (page - 1)*20

因为并没有进入到个人信息页面 而是跳转到了登陆页面,而登陆页面不是utf-8 所以报错

(1本地文件 etree.parse

(2)解析服务器响应的数据 response.read().decode('utf-8') ***** etree.HTML()

 
 
获取百度网站的 百度一下

需求 下载的前十页的图片

Python爬虫 从小白到高手 各种最新案例! Urllib Xpath Jso<em></em>nPath BeautifulSoup

# 第一页

# 第二页

# 第n页

那爬的源码和实际源码不一样咋解决呢

2.JsonPath 只能解析本地文件

jsonpath的安装及使用方式

pip安装:pip install jsonpath

jsonpath的使用

obj = json.load(open('json文件', 'r', encoding='utf‐8'))

2.boos直聘

3.中华英才

4.汽车之家

3.BeautifulSoup(跳过了

看了这条评论:可以跳过 爬虫2年没用过这个

1.基本简介

1.BeautifulSoup简称: bs4

2.什么是BeatifulSoup

BeautifulSoup和lxml一样,是一个html的解析器,主要功能也是解析和提取数据

3.优缺点

缺点效率没有lxml的效率高

优点:接口设计人性化,使用方便

2.安装以及创建

1.安装

pip install bs4

2.导入

from bs4 import BeautifulSoup

3.创建对象

服务器响应的文件生成对象

soup = BeautifulSoup(response.read().decode(), 'lxml')

本地文件生成对象

soup = BeautifulSoup(open('1.html'), 'lxml')

类似于xpath

注意默认打开文件的编码格式gbk所以需要指定打开编码格式

通过解析本地文件 来将bs4的基础语法进行讲解

默认打开的文件的编码格式是gbk 所以在打开文件的时候需要指定编码

2.中华英才网-旧版

3 .腾讯公司招聘需求抓取

bs4爬取星巴克数据.py
 
  
 

1.Selenium (过程有点慢

1.什么是selenium

(1)Selenium是一个用于Web应用程序测试的工具。

(2)Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样。

(3)支持通过各种driver(FirfoxDriver,IternetExplorerDriver,OperaDriver,ChromeDriver驱动真实浏览器测试

(4)selenium也是支持无界面浏览器操作的。

2.为什么使用selenium

模拟浏览器功能,自动执行网页中的js代码,实现动态加载

3.如何安装selenium

(1)操作谷歌浏览器驱动下载地址

(2)谷歌驱动和谷歌浏览器版本之间的映射表(没啥用了,现在版本已经停更映射表

(3)查看谷歌浏览器版本

谷歌浏览器右上角‐‐>帮助‐‐>关于

(4)pip install selenium

4.selenium的使用步骤

(1)导入:from selenium import webdriver

(2)创建谷歌浏览器操作对象

path = 谷歌浏览器驱动文件路径

browser = webdriver.Chrome(path)

(3)访问网址

url = 要访问的网址

browser.get(url)

常见使用报错原因

4.0+会自动装载path无需写入参数!但报错不会影响网页爬取

注意!如果你下载的seleninum是4.0+!path写了会报错

如果浏览器未安装在默认位置,会报cannot find Chrome binary错误,需要配置环境变量及代码指定浏览器位置

吐血了,闪退原因谷歌和谷歌驱动版本不兼容

闪退换成3.31版本就好:pip install selenium3.3.1

 
 

报错:感觉是版本问题 要不把chrome最新版卸了重新安装

 
 

重装了还是用不了;我估计是方法过时了

 
  
 

要找到它们,WebDriver提供很多定位元素的方法

方法(这些方法应该都过时了

参考最新源码

 
 
 
 

1.find_element_by_id

eg:button = browser.find_element_by_id('su')

Traceback (most recent call last):
File "D:Python爬虫代码079_尚硅谷_爬虫_selenium_元素定位.py", line 14, in <module>
button = driver.find_element_by_id('su')
AttributeError: 'WebDriver' object has no attribute 'find_element_by_id'

button = browser.find_element('id','su') 改成这样

然后才能输入browser.find_element(By.ID,'su');然后才能输入browser.find_element(By.ID,'su')

2.find_elements_by_name

eg:name = browser.find_element_by_name('wd')

3.find_elements_by_xpath

eg:xpath1 = browser.find_elements_by_xpath('//input[@id="su"]')

4.find_elements_by_tag_name

eg:names = browser.find_elements_by_tag_name('input')

5.find_elements_by_css_selector

eg:my_input = browser.find_elements_by_css_selector('#kw')[0]

6.find_elements_by_link_text

eg:browser.find_element_by_link_text("新闻")

 
 
4‐2:访问元素信息

获取元素属性

.get_attribute('class')

获取元素文本

.text

获取标签名

.tag_name

 
 
4‐3:交互

点击:click()

输入:send_keys()

后退操作:browser.back()

前进操作:browser.forword()

模拟JS滚动:

js='document.documentElement.scrollTop=100000'

browser.execute_script(js) 执行js代码

获取网页代码:page_source

退出:browser.quit()

 
 

2.Phantomjs(公司破产,基本淘汰

1.什么是Phantomjs

(1)是一个无界面的浏览器

(2支持页面元素查找,js的执行

(3)由于不进行css和gui渲染运行效率要比真实的浏览器要快很多

2.如何使用Phantomjs

(1)获取PhantomJS.exe文件路径path

(2)browser = webdriver.PhantomJS(path)

(3)browser.get(url)

扩展:保存屏幕快照:browser.save_screenshot('baidu.png')

3.Chrome handless

Chrome-headless 模式 Google 针对 Chrome 浏览器 59版 新增加的一种模式,可以让你不打开UI界面的情况下使用 Chrome 浏览器,所以运行效果与 Chrome 保持完美一致。

1.系统要求

Chrome

UnixLinux 系统需要 chrome >= 59

Windows 系统需要 chrome >= 60

Python3.6

Selenium==3.4.*

ChromeDriver==2.31

2.配置

from selenium import webdriver

from selenium.webdriver.chrome.options import Options

chrome_options = Options()

chrome_options.add_argument('‐‐headless')

chrome_options.add_argument('‐‐disable‐gpu')

path = r'C:Program Files (x86)GoogleChromeApplicationchrome.exe'

chrome_options.binary_location = path

browser = webdriver.Chrome(chrome_options=chrome_options)

browser.get('

3.配置封装
 
 

我的还是会弹出来界面,我估计是driver的原因

 
 

作业:京东

    以上就是本篇文章【Python爬虫 从小白到高手 各种最新案例! Urllib Xpath JsonPath BeautifulSoup】的全部内容了,欢迎阅览 ! 文章地址:https://sicmodule.kub2b.com/quote/11645.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站https://sicmodule.kub2b.com/mobile/,查看更多   
发表评论
0评