![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
爬虫
十三先生po
哈哈哈哈哈哈哈哈哈哈嗝儿
展开
-
IndexError: list index out of range
问题参考python 异常处理 try except问题背景使用python的beautifulsoup库爬取网页数据的时候,使用select方法找标签并赋值时报错IndexError: list index out of range关键部位原代码date = i.select('.c-abstract')dict['date'].append(''.join(date[0].get_text().split()))问题解决重点怀疑是没有找到对应标签,在选择输出第一个元素的时候报错,原创 2021-10-26 19:57:25 · 2902 阅读 · 0 评论 -
AttributeError: ‘NoneType‘ object has no attribute ‘append‘
问题参考将元素追加到Python中的空列表字典中Python之字典添加元素的几种方法问题背景使用python的beautifulsoup库爬取网页数据的时候,将得到的值放进dict字典中存储,报错AttributeError: 'NoneType' object has no attribute 'append'关键部位的原代码dict = {'page':page,'title':None,'source':None,'date':None,'url':None}source = i原创 2021-10-26 19:50:05 · 674 阅读 · 0 评论 -
报错AttributeError: ResultSet object has no attribute ‘get_text‘.
问题参考问题背景使用python的beautifulsoup库爬取网页数据的时候,使用select方法找标签并赋值,get_text()提取文本内容时,报错:AttributeError: ResultSet object has no attribute 'get_text'. You're probably treating a list of elements like a single element. Did you call find_all() when you meant to cal原创 2021-10-26 19:43:18 · 5253 阅读 · 0 评论 -
python使用beautifulsoup中select方法爬虫时使用join和split方法配合处理特殊字符
问题参考python如何去掉字符串‘\xa0’Python split()方法Python join()方法python中join()函数的使用方法问题背景使用python对百度网页进行爬取时,爬取的摘要标签中,时间和文章内容在同一标签下,但属于同一标签,抓取的数据本身如果有空格,在编译的时候会输出字符\xa0 ,使用join和split的组合方法去掉想要爬取目标数据:使用beautifulsoup的select方法爬取出来的效果如下:想要的输出的结果:问题解决使用join和sp原创 2021-10-26 12:02:50 · 602 阅读 · 0 评论 -
常见反爬虫手段和高级爬虫的写法
反爬虫:使用任何技术手段,阻止别人批量获取自己网站信息的一种方式。关键也在于批量。关于反爬虫,看这一篇就够了https://segmentfault.com/a/1190000005840672(1)传统反爬虫手段:1、后台对访问进行统计,如果单个IP访问超过阈值,予以封锁。有两个缺陷,一个是非常容易误伤普通用户,另一个就是,IP其实不值钱,几十块钱甚至有可能买到几十万个IP。2、后台对访问进行统计,如果单个session访问超过阈值,予以封锁。这个看起来更高级了一些,但是其实效果更差,因为s转载 2021-10-01 21:57:36 · 661 阅读 · 0 评论 -
python使用selenium模块实现可视化QQ邮箱自动登陆
注意点进入页面后,切换到登录frame(必须先切换!!!)dr.switch_to_frame('login_frame')没有调用账号包就手写# 输入账号,没有调用账号包就手写# user_name.send_keys(username)user_name.send_keys('11241244143229')# 输入内容user_pwd = dr.find_element_by_id('p')# 输入密码,没有调用账号包就手写# user_pwd.send_keys(use原创 2021-09-29 16:13:05 · 674 阅读 · 0 评论 -
python爬虫使用selenium模块时报错TypeError: object of type ‘WebElement‘ has no len()
问题背景使用selenium模块登陆某个页面,在传参的时候报错TypeError: object of type ‘WebElement’ has no len()以下是可能出现问题的代码# 输入账号,没有调用账号包就手写user_name.send_keys(user_name)# 输入内容user_pwd = dr.find_element_by_id('p')# 输入密码,没有调用账号包就手写user_pwd.send_keys(user_pwd)问题解决该文件定义的实参名原创 2021-09-29 16:09:12 · 1281 阅读 · 0 评论 -
python爬虫selenium的其他用法
selenium的其他用法解决截屏全屏问题页面切换问题使用window_handles控制控制器停留的页面,以控制截图网页返回默认网页有两种方法设置请求头注意复制出来的请求头User-Agent:Mozilla。。。。中,冒号换成等于号=import timefrom selenium import webdriverfrom selenium.webdriver.chrome.options import Options# 启用无头浏览# option = Options()原创 2021-09-29 14:52:44 · 67 阅读 · 0 评论 -
python使用selenium的webdriver解析网页,获取一个或者多个标签,selenium获取豆瓣数据以及selenium的元素定位类型
目录使用背景注意点和小技巧elements和element的区别使用selenium的xpath方法的网页快速复制无头使用webdriver的方法:简单使用seleniumselenium获取豆瓣数据以及selenium的元素定位类型使用背景从效率来讲,能用request模块得到响应是最好的,但有时候使用request得到的东西并不是自己想要的东西(搞不定),或者说想解析但是比较复杂,在这种情况下就会使用selenium注意点和小技巧elements和element的区别使用element元素定原创 2021-09-28 17:53:19 · 1651 阅读 · 0 评论 -
python爬虫使用selenium运行报错“‘WebElement‘ object is not subscriptable”
其他解决方法selenium运行报错“‘WebElement‘ object is not subscriptable”https://blog.csdn.net/weixin_46777073/article/details/107316005find_elements_by_xxx() 用法以及 报错TypeError: ‘FirefoxWebElement’ object is not subscriptablehttps://blog.csdn.net/sunandstarws/article原创 2021-09-28 16:17:48 · 5067 阅读 · 1 评论 -
python爬虫常用方法中,beautiful_soup解析的select方法,xpath,json写法的对比
beautiful_soup解析的select方法是常见的beautifulsoup用法,select(返回的是列表值)可以查询标签,id,class,层级选择器,组选择器,属性选择器。。。附上一个常见用法的汇总和实战python使用BeautifulSoup解析豆瓣读书网页并获取相关数值https://blog.csdn.net/weixin_55579895/article/details/120457867?spm=1001.2014.3001.5502python爬虫使用beautiful原创 2021-09-28 16:01:20 · 1219 阅读 · 0 评论 -
解决python使用webdriver.Chrome()打开Google谷歌浏览器秒关,报错libpng warning: iCCP: cHRM chunk does not match sRGB
目录其他解决方法问题解决方法其他解决方法【OpenCVError】libpng warning: iCCP: cHRM chunk does not match sRGBchrome webdriver_selenium自动化测试时chrome浏览器为什么会自动关闭?https://blog.csdn.net/weixin_39613291/article/details/110602839Python 的 libpng warning: iCCP: cHRM chunk does not matc原创 2021-09-28 15:35:16 · 1071 阅读 · 0 评论 -
python爬取json数据以及单线程爬取腾讯招聘网站json信息实战
先去XHR查找,没有再去all查找原创 2021-09-25 20:46:31 · 413 阅读 · 0 评论 -
python使用BeautifulSoup解析豆瓣读书网页并获取相关数值
豆瓣读书网址:(https://book.douban.com/tag/%E5%B0%8F%E8%AF%B4)难点:获取数值后保存数值,保存的时候需要将整理好的书别列表遍历,依次写入在写入时,最好使用str()强制字符化以防万一可能会因为cookies问题无法或者完整页面,需要加上cookies数据清洗阶段,select方法可以重复嵌套使用import cchardetimport requestsfrom bs4 import BeautifulSoupclass Douban(o原创 2021-09-24 16:28:56 · 503 阅读 · 0 评论 -
解决python中TypeError: not enough arguments for format string错误
在爬虫保存初步数据是,使用print方法查看输出的结果解决python中TypeError: not enough arguments for format string(https://blog.csdn.net/w926498/article/details/80579520)print(['{%s:%s},%s'] % book_name,book_url,book_appraise))# 报错# TypeError: not enough arguments for format stri原创 2021-09-24 15:03:04 · 644 阅读 · 0 评论 -
python爬虫使用requests发送带cookie的请求的两种方法
方法1:直接登陆对应网址后,F12网页检查,在network中选中任意一网址,复制cookies直接登陆import requestsdef douban_login(): url = 'https://www.douban.com/people/221725636/' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (K。。。。。。。。。。。。。。。原创 2021-09-24 14:07:43 · 7038 阅读 · 0 评论 -
requests.exceptions.InvalidHeader: Invalid return character or leading space in header: user-agent错误
在爬虫的时候报错:requests.exceptions.InvalidHeader: Invalid return character or leading space in header: User-Agent后来发觉是请求头headers的问题,字典内不能有空格requests.exceptions.InvalidHeader: Invalid return character or leading space in header: user-agent错误(https://blog.csd原创 2021-09-24 11:45:14 · 196 阅读 · 0 评论 -
python爬虫使用beautifulsoup解析网址以及常见的beautifulsoup用法
常见的beautifulsoup用法find()find_all()select()可以传送的参数和在其中使用的方法:标签,正则表达式,属性from typing import Containerfrom bs4 import BeautifulSoupimport rehtml_str = ''' <div> <ul> <li class="item-1" id='link11'><a href="link1原创 2021-09-23 17:57:04 · 474 阅读 · 0 评论 -
python使用xpath语言解析遍历HTML\XML 文档中元素,属性以及xpath的基本认识,xpath_helper的简单使用
为什么要学习xpath和lxmllxml是一款高性能的 Python HTML/XML 解析器,我们可以利用XPath(解析的语言),来快速的定位特定元素以及获取节点信息lxml库需要安装安装语句: 在cmd命令行中输入:pip install lxml如果安装lxml库出错,建议自行百度查找方法什么是xpathXPath (XML Path Language) 是一门在 HTML\XML 文档中查找信息的语言,可用来在 HTML\XML 文档中对元素和属性进行遍历。W3School官方文原创 2021-09-23 15:59:14 · 1718 阅读 · 0 评论 -
python使用正则表达式多次(二次)匹配内涵吧多页数据
完善了一些问题:编码问题:使用cchardet模块获取编码格式,并将赋予该格式实参,成为类的一个属性有一些奇怪的编码如“……”:第二次使用正则匹配将这些编码按照规律找不来,使用sub方法替换# 获取内涵吧多页 段子内容from typing import Typeimport requestsimport refrom user_agent import headersimport cchardet# 完善的一些问题:# 1 编码问题:使用cchardet模块获取编码格式,并将赋予原创 2021-09-22 20:13:09 · 968 阅读 · 0 评论 -
python正则匹配36氪数据
cchardet模块用于查找该网页的编码方式使用jsonpath模块之前拿到的是list数据,而jsonpath不能处理python数据类型,需要用json.loads转换from typing import Typeimport jsonpathimport jsonimport requestsimport refrom user_agent import headers # 没有自己的请求头包请注释掉,去网页自己复制import cchardetclass K36(object.原创 2021-09-22 16:31:29 · 109 阅读 · 0 评论 -
python正则匹配果壳数据实战
正则表达式是是比较难的知识,一般的爬虫,大部分都可以通过lxml,css选择器之类的方法选到想要的元素,只有在所有方法都用不了的时候,最后才会用正则表达式。正则匹配的基础扫盲知识(https://www.runoob.com/python/python-reg-expressions.html)import requestsimport reimport cchardetfrom user_agent import headers # 没有自己的请求头包请注释掉,去网页自己复制# 注意原创 2021-09-22 16:16:13 · 95 阅读 · 0 评论 -
python正则表达式简单使用
字符. 所有\ 转义[] 里面的任意预定义的字符集\d 数字~9\D 取反[^\d]数量0~无限1~无限(找到的数量,不局限于只对找到的第一个找到元素进行操作){m} m次{m,n} m~次? 前一个字符0或者1次常见的用法Serarch() 找一个Match() 从头开始找Fidall() 找全部Sub() 替换Compile 编译import refrom typing import Container # re.compile()匹配原创 2021-09-21 12:41:53 · 113 阅读 · 0 评论 -
json、xpath数据的快捷检阅方法,使用jsonpath将拉钩的json数据提取某一个并且保存到本地(保存有两种方法)的实战
JSONPath 表达式始终以与 XPath 表达式与 XML 文档结合使用的相同方式引用 JSON 结构红线为常用的json路径写法- 递归下降:不管前面有什么,只要找到他就可以JSONPath 示例实战:将拉钩的json数据提取某一个并且保存到本地注意点一定要加请求头,能带上代理参数就带上代理参数(反反爬虫)快代理网址(https://www.kuaidaili.com/free/inha/2/)字符串不能直接使用jsonpath进行解析,dict字典是可以的,方法1:使用jso原创 2021-09-20 15:57:54 · 522 阅读 · 0 评论 -
以载入Chrome插件 XPath Helper为例普及谷歌Google Chrome浏览器导入扩展包(crx文件)方法和错误解决
有时候在谷歌浏览器扩展包管理页面直接拉入导入扩展包crx导入扩展包的方式会提示文件失败,会提醒文件无效先看看常规操作打开Google Chrome点击更多工具-扩展包直接从桌面导入即可如果导入失败,则需要以下操作:将目标crx文件复制多一份(以防改错),将复制的文件格式改成压缩包格式名称(如rar)将该压缩包解压在谷歌浏览器中-扩展程序-打包扩展程序-选择刚刚解压的目录选择完毕后选择——“打包扩展程序按钮点击“加载已解压的扩展包程序”——选择刚刚加原创 2021-09-20 14:29:41 · 756 阅读 · 0 评论 -
json和python内置数据类型的转换
json–>dict 使用loads方法进行转换import jsonjson_str = '{"name":"python","address":"中国"}'# json-->dict 使用loads方法进行转换py_dict = json.loads(json_str)print(type(json_str))print('================')print(type(py_dict))dict–>json_str 使用dumps()方法进行转换.原创 2021-09-19 21:53:04 · 188 阅读 · 0 评论 -
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)错误解决办法
记录一下自己debug的方法解决的错误json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)错误的原因文件位置没有写对我需要找到第六天/json_test.json这个文件,但是只写了json_test.json这个路径,而我的python环境目录是从lv19这个文件夹开始的,路径需要写对文件本身就是空文件解决办法将以上两个问题一起解决,路劲补全,查看目标读取文件是否为空http原创 2021-09-19 21:43:20 · 1560 阅读 · 0 评论 -
python爬虫中数据的分类
结构化的:先有结构后有数据 {“a”:”b”} json xml(键值对存在) velue非结构化的:html, strXml 格式的文件<bookstore><book category="COOKING"><title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year>原创 2021-09-19 20:53:23 · 231 阅读 · 0 评论 -
python使用urllib发送带headers的请求
Utllib总结Urllib.request 实现了构造请求和发送Urllib.request.ulropen()能够接受请求或者向目标url发送请求得到响应Urllib.request.Request() 能够构造请求Urllib.request.read() 可以将得到的响应对象读取出来# Utllib总结# Urllib.request 实现了构造请求和发送# Urllib.request.ulropen()能够接受请求或者向目标url发送请求得到响应# Urllib.reque原创 2021-09-19 17:06:51 · 926 阅读 · 0 评论 -
python使用requests配合retrying模块多次发送
import requestsfrom retrying import retryclass Usere(object): '''使用retrying模块''' def __init__(self): self.url = 'https://www.baidu.com' self.index = 0 # stop_max_attempt_number=3执行此函数的次数3次 # 加入装饰器 @retry(stop_max_at原创 2021-09-19 14:52:12 · 348 阅读 · 0 评论 -
python爬虫使用request模块/包忽略安全认证问题
忽略安全证书问题 verify=Falseimport requestsurl = 'https://www.baidu.com'# 构造代理参数 格式 协议:ip:port(端口)proxy = { # 'https':'117.65.1.48:3256' 'http':'211.65.197.93:80' # 有多的话继续往后面写,不行就换其他的,注意类型是http还是https还是其他}# 忽略安全证书问题 verify=Falseres = requests原创 2021-09-19 14:51:14 · 5625 阅读 · 0 评论 -
python使用代理ip的requests模块
快代理网址:https://www.kuaidaili.com/free/inha/1/import requestsurl = 'https://www.baidu.com'# 构造代理参数 格式 协议:ip:port(端口)proxy = { # 'https':'117.65.1.48:3256' 'http':'211.65.197.93:80' # 有多的话继续往后面写,不行就换其他的,注意类型是http还是https还是其他}res = requests.原创 2021-09-18 20:32:04 · 27148 阅读 · 0 评论 -
python使用request中session登录post方式页面进入豆瓣
对于豆瓣这个登录必须有验证的网址,post和get没有关联性,按照不同的需求使用不同的连接方式,可以先自己手动登录到豆瓣,然后拷贝登录后的cookie到代码里,爬虫程序就会以登录后的状态抓数据了import requestsfrom user_agent import headersdef douban_login(): login_url = 'https://accounts.douban.com/j/mobile/login/basic' url = 'https://www原创 2021-09-18 17:48:28 · 890 阅读 · 0 评论 -
python爬虫时如何找到cookies值,并通过session方法自动获取cookie
使用requests库内的一个session方法,可以记录上一次使用过的cookie并在此次中使用import requestsfrom user_agent import headersdef renren_login(): url = 'http://www.renren.com/880151247/profile' login_url = 'http://www.renren.com/PLogin.do' # requests中的session会帮我们得到cook原创 2021-09-18 16:35:06 · 3243 阅读 · 0 评论 -
python将从浏览器中复制下来的cookie字典化
写法1:使用快速写法cookies = 'bid=CoFnyYaHvxQ; douban-fav-remind=1; __yadk_uid=MGLPA6D5bDkj8JypPNYfwDtVVqUUC1nu; ll="118281"; push_doumail_num=0; __utmv=30149280.22172; gr_user_id=59b923b6-172f-4e68-a7f1-4a2facfb25c7; _ga=GA1.1.843993488.1628860359; _ga_RXNMP372GL原创 2021-09-18 15:43:34 · 552 阅读 · 0 评论 -
python通过requests获取指定范围多页信息
import requestsclass Tieba(object): """获取指定贴吧的信息 用户输入什么就搜索什么信息""" def __init__(self): self.tieba_name = input('请输入关键词:') # self.page = 0 self.st_page = int(input('请输入爬取的开始页')) self.end_page = int(input('请输入爬取的原创 2021-09-17 17:45:10 · 519 阅读 · 0 评论 -
python使用with open语句保存文件时的路径问题及报错FileNotFoundError: [Errno 2] No such file or directory
需要注意自己当前编程的环境,如果目录没有写完整,则会报错:FileNotFoundError: [Errno 2] No such file or directory: '第二天/tiebatieba/2.0页.html'例子我需要将一份文件保存在第二天/tieba文件夹下,尽管我的编程文件在第二天下面,但是当前的环境路径为lv19 爬虫开发与实战/第二天,我需要将“第二天”这个路径也加上去file_path = '第二天/tieba/'+ self.tieba_name + str(self..原创 2021-09-17 17:44:29 · 11150 阅读 · 0 评论