response = requests . get ( url ) if response . status_code == 200 : return response . text except requests . RequestException : return None def parse_result ( html ) : pattern = re . compile ( '.*?class="title">(.*?)</a' , re . S ) items = re . findall ( pattern , html ) return items def write_item_to_file ( item ) : text = '' item = resub ( item ) text += item + '\n' print ( '开始写入数据 ====> ' + str ( text ) ) with open ( '../title.txt' , 'a' , encoding = 'UTF-8' ) as f : f . write ( text ) # 以下根据网页来剔除不需要的部分 def resub ( item ) : item = re . sub ( r '^<span>.*\n?' , '' , item , flags = re . MULTILINE ) ## 去掉本站特有的<span> item = re . sub ( '<em class=\"keyword\">' , '' , item ) ## 去掉 搜索关键词标签 item = re . sub ( '</em>' , '' , item ) ## 去掉 /标签 item = re . sub ( '&quot;' , '"' , item ) return item def key2url ( data ) : keyword = urllib . parse . quote ( data . encode ( 'utf-8' ) . decode ( sys . stdin . encoding ) . encode ( 'utf8' ) ) return keyword def main ( page ) : url = 'https://search.bilibili.com/all?keyword=' + key2url ( "回放" ) + '&from_source=web_search&page=' + str ( page ) html = request_bilibili ( url ) items = parse_result ( html ) for item in items : write_item_to_file ( item ) if __name__ == "__main__" : for i in range ( 1 , 15 ) : main ( i )

发现了一个小问题:
关于range()函数的问题,是获取到二者之间的数。

例如range(1,10)就只会获取1到9。
修改办法:改成range(10)

我选择网页是B站上搜索”回放“1-5页的网页,代码如下:import requestsimport redef request_bilibili(url): try: # 同步请求 response = requests.get(url) if response.status_code == 200: return response.text except requests.RequestException: 全称 Uniform Resource Locator (统一资源定位器),格式为:协议+主机+端口+路径。 比如:https://www.bilibili.com/video/BV17x411w7KC https:// 是协议,www.bilibili.com 是主机域名,这个例子中端口号并未在主机域名后指定,使用的是默认端口,/video/BV17x411w7KC 是文件路径。 简单来说,就是使用浏览器打开一个网页时,显示在最上方搜索栏中的内容。 正则表达式 import requests 如果你没有第一行的包,那么在PyCharm编译器中的话,只要将鼠标移到那上面去就会弹出个提示框,选择前面有Install的一行蓝字,点击它就能下载回来了。 然后我们准备一个字符串,里面存着我们要借助 b站 引擎搜索的关键字 我这里准备了一行字符串,用它搜索只会有一个 视频 出现: userSeach='【迷你摩托】张本智和(11岁)VS谭瑞午/Jens' 然后我们准备如下字符串:https://sea
常驻 b站 学习,一个 视频 几十集都是家常便饭 我的习惯用Word文档记笔记,因为Word的 标题 随便拖上拖下,改的时候比较方便。另外除非需要搭配代码的时候才用Typora 【下图是我的记笔记习惯,一般 笔记 标题 是 每集 视频 的名字】 偶然发现评论区 有位老哥把每集 视频 标题 发出来。一瞬间,我悟了!这不 每集 视频 的笔记 标题 这不就来了吗,干嘛还要手写!!!
url = 'https://m.bilibili.com/video/av.html' av = 'av' header = {'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) ' 'AppleWebKi...
之前在学习 B站 分集 视频 时,为做笔记曾需要频繁复制 标题 文字,同时也需要知道 视频 时长,于是用js把 标题 及时长在控制台输出然后复制存为文本文件。 var box=document.getElementsByClassName('list-box')[0]; var boxtext=box.innerText; var textline=boxtext.replace(/\n(?!P\d+)/g,' '); console.log(textline); 使用方法:按下F12进入开发者工具,点击“Console”标
查找要爬取内容的页面的url,使用requests库 获取 响应内容 内容为html源码则使用BeautifulSoup等工具解析html源码,得到想要的数据 内容为Json则直接转为Json对象解析 但今天我发现了selenium这个工具,selenium是一套完整的web应用程序测试系统,可以用它来模拟真实浏览器进行测试。在爬虫中使用它的... from bs4 import BeautifulSoup url = "https://baijiahao.baidu.com/s?id=1694244573300628320&wfr=spider&for=pc" response = requests.get(url) soup = BeautifulSoup(response.content, "html.parser") title = soup.title.text print(title) 其中,`url` 是你要 获取 标题 的网页链接。`requests.get(url)` 发送一个HTTP请求并 获取 响应。`BeautifulSoup(response.content, "html.parser")` 将响应内容解析为HTML文档。`soup.title.text` 获取 HTML文档中的 标题 文本。最后,将 标题 文本输出到控制台。