首页 > 其他分享 >爬虫

爬虫

时间:2023-09-20 12:23:40浏览次数:32  
标签:name 标签 爬虫 class soup response select

requests 模块

获取数据方式

静态页面

import requests
response=requests.get(url="https://www.baidu.com")
print(response.text)

动态加载数据

豆瓣动画电影排行榜

import requests
import json
url='https://movie.douban.com/j/chart/top_list'
params={'type':25,'interval_id':'100:90','action':'','start':0,'limit':169}
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 Edg/116.0.1938.81'}
response=requests.get(url=url,params=params,headers=headers)
content=response.json()
tot=0
for s in content:
    print(s['title'],s['score'])
    tot+=1
    if tot==5:
        break

图片

百度图片

import requests
url="https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png"
response=requests.get(url=url)
#提取图片的二进制字节码
content=response.content
#将二进制字节码写入文件
with open ('baidu.png','wb') as fp:
    fp.write(content)

get()函数

参数介绍

headers 请求头

headers={'User-Agent':'Mozilla/5.0 (Linux; Android 9; SM-G960F) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/80.0.3987.119 Mobile Safari/537.36 MicroMessenger/7.0.10.1580(0x27000A53 NetType/WIFI Language/zh_CN'}

params 动态参数

timeout 请求超时的时间(s)

timeout=1.0

proxies 代理服务器

proxies={'https':101.123.102.12:7999}

verify参数 绕过SSL证书认证。

现在很多网站要求使用HTTPS协议,但有些网站没有设置好HTTPS证书或者其证书不被CA机构认可,就会出现SSL证书错误的提示。
为了让我们的爬虫进行下去,我们设置verify = False 来取消证书验证。

post()函数

Re正则表达式

普通字符表
1695084580182

元字符表
1695084613067

re模块

findall() 提取满足正则表达式的所有字符串 []

search() 匹配第一个满足正则表达式的字符串,用group()取值

match() 从开头匹配的search()

finditer() 返回迭代器的findall()

BeatifulSoup模块

定位方式

1.标签名

返回第一个p标签
soup.p

2.标签属性

soup.find(class_='')
soup.find_all(id='')

3.标签名+标签属性

soup.find('div',class_='')

4.选择器

返回所有符合条件的标签

(1) id选择器

soup.select('#id_name')

(2) class选择器

soup.select('.class_name')

(3) 标签选择器

soup.select('li')

(4) 层级选择器

>表示向下找一个层级,中间不能有其他层级
空格表示中间可以有多个层级

soup.select('div>ul>#id_name')
soup.select('div>ul>li')
soup.select('div li')

提取文本和属性

string属性返回直系文本
soup.select('.class_name')[1].string
text属性返回所有文本
soup.select('.class_name')[1].string
字典取值提取标签属性
soup.select('.class_name')['class']

Xpath表达式

html=etree.parse('text.html')
html=etree.HTML(response.text)

定位标签

(1)标签名定位

(2)索引定位

(3)属性定位

html.xpath('//*[@class='class_name']')

//表示多层级,*表示任意标签

(4)逻辑运算定位

提取文本内容和属性

/text() 直系文本内容

//text() 所有文本内容

/@属性名 指定属性值

数据清洗

1.异常值处理

替换为空值后删除
data['price'][data['price']>1000=None
data.dropna()
或替换为空值后进行数据插补
data['price'][data['price']>1000=None
data.fillna(data.mean())\

乱码处理

从网页源码查看<meta>标签的charset属性编码格式

response.encoding=response.apparent_encoding

标签:name,标签,爬虫,class,soup,response,select
From: https://www.cnblogs.com/chenelm/p/17717002.html

相关文章

  • Python异步编程高并发执行爬虫采集,用回调函数解析响应
    一、问题:当发送API请求,读写数据库任务较重时,程序运行效率急剧下降。异步技术是Python编程中对提升性能非常重要的一项技术。在实际应用,经常面临对外发送网络请求,调用外部接口,或者不断更新数据库或文件等操作。这这些操作,通常90%以上时间是在等待,如通过REST,gRPC向服务器发送请......
  • Python 爬虫使用 Selenium 如何在 WebElement 获得属性
    首先,我们需要初始化驱动和指定使用特定的流量器。 代码如下: fromseleniumimportwebdriverwd=webdriver.Firefox()上面的代码可以简单的理解为启动一个Firefox的实例。使用css选择器可以把程序读取的HTML理解为一个Doc。我们需要在Doc中选择我们的元素,这个叫做选择......
  • Python 爬虫使用 Selenium 如何在 WebElement 获得属性
    首先,我们需要初始化驱动和指定使用特定的流量器。 代码如下: fromseleniumimportwebdriverwd=webdriver.Firefox()上面的代码可以简单的理解为启动一个Firefox的实例。使用css选择器可以把程序读取的HTML理解为一个Doc。我们需要在Doc中选择我们的元素,......
  • 改进了headers的爬虫(Cookies)
    importurllib.requestfromlxmlimportetreedefcreate_request(page):ifpage==1:url='http://www.chinaeol.net/hjxw/gnxw'else:url='http://www.chinaeol.net/hjxw/gnxw/index_'+str(page)+'.shtml�......
  • 一个稍微用了下selenium的爬虫框架
    fromseleniumimportwebdriverfromselenium.webdriver.common.keysimportKeysfromselenium.webdriver.common.byimportByfromselenium.webdriver.chrome.optionsimportOptionsdefgethreflist(url)#Settheheadersfortherequestheaders={......
  • 爬虫随笔(一)
    最近因为工作和研究方向的变动,开始学习爬虫,现在是刚刚入门,简单写一些,爬虫入门的建议。一、基础知识(1)掌握的编程语言:python、Html、JS、CSSPython是必须的,虽然Java也可以实现相关功能,但是总归脚本写起来方便一点。如果有语言基础,直接去菜鸟教程,看语法,就差不多掌握了。Html、JS......
  • Python 之 爬虫实战 -- 爬某音乐歌曲及评论信息
    使用Selenium爬某音乐歌曲及评论信息啦~Selenium简单介绍1)简介Selenium是一个用于测试网站的自动化测试工具,支持各种主流界面浏览器。简而言之,Selenium是一个用来做网站自动化测试的库,它的定位是做自动化测试的。我们也可以利用它来做爬虫,获取一些网页信息,并且这种爬虫是模......
  • Python 之 爬虫实战 -- 免费音乐下载器
    【Tkinter界面化小程序】用Python做一款免费音乐下载器、无广告无弹窗、清爽超流畅哦~思路进入某音乐主页输入任意歌手,比如李XX为列。音乐从哪里来?---网站的服务器里怎么从网址里得到音乐?---向网站发起网络请求最后用tkinter做成一个界面下载框即可环境本文用到的环境如下:P......
  • 代理IP与Socks5代理:跨界电商智能爬虫的引擎与安全壁垒
    摘要:随着跨界电商的蓬勃发展,数据采集和隐私保护成为企业的关键挑战。本文将深入探讨代理IP和Socks5代理在跨界电商中的应用,以及它们在智能爬虫技术中的关键作用,为企业提供数据引擎和安全防护的解决方案。第一部分:背景介绍跨界电商已成为全球贸易的重要组成部分,为企业提供了巨大的市......
  • 代理IP与Socks5代理:跨界电商智能爬虫的引擎与安全壁垒
    摘要:随着跨界电商的蓬勃发展,数据采集和隐私保护成为企业的关键挑战。本文将深入探讨代理IP和Socks5代理在跨界电商中的应用,以及它们在智能爬虫技术中的关键作用,为企业提供数据引擎和安全防护的解决方案。第一部分:背景介绍跨界电商已成为全球贸易的重要组成部分,为企业提供了巨大的市......