首页 文章 精选 留言 我的

精选列表

搜索[数据脱敏],共10000篇文章
优秀的个人博客,低调大师

用xpath、bs4、re爬取B站python数据

import requests,re from lxml import etree from bs4 import BeautifulSoup def get_page(page): try: #这里要加上cookie headers = { 'Cookie': 'LIVE_BUVID=AUTO5015218915110407; sid=4oag5i0u; fts=1521891539; pgv_pvi=3655305216; UM_distinctid=16257cdfffd2e4-032750a28294b2-3b60450b-100200-16257cdfffe2a0; buvid3=7B94813D-1039-4A88-A1EE-9AEFDF54BE05140244infoc; rpdid=kxsliqpkisdosikxllmww; CURRENT_QUALITY=80; finger=edc6ecda', 'Host': 'search.bilibili.com', 'Referer': 'https://www.bilibili.com/', 'Upgrade-Insecure-Requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36' } url = 'https://search.bilibili.com/all?keyword=python&from_source=banner_search&spm_id_from=333.334.banner_link.1&page={}'.format(str(page)) response = requests.get(url,headers=headers) if response.status_code == 200: return response.text except Exception: return None #用xpath解析网页,获取属性值用符号@ def xpath_parse_page(html): data = etree.HTML(html) items = data.xpath('//*[@class="video-contain clearfix"]/li') for item in items: yield { 'video_image' : item.xpath('./a/div/div[1]/img/@src')[0], 'video_title' : item.xpath('./div/div[1]/a/text()')[0], 'video_view' : item.xpath('./div/div[3]/span[1]/text()')[0].strip(), 'video_updateTime' : item.xpath('./div/div[3]/span[3]/text()')[0].strip(), 'video_up' : item.xpath('./div/div[3]/span[4]/a/text()')[0] } #用bs4解析网页 def bs4_parse_page(html): soup = BeautifulSoup(html,'lxml') items = soup.find_all('li',{'class':'video matrix'}) for item in items: yield{ 'video_image' : item.find('img').get('src'), 'video_title' : item.find('a',{'class':'title'}).get_text(), 'video_view': item.find('span',{'class':'so-icon watch-num'}).get_text().strip(), 'video_updateTime' : item.find('span', {'class': 'so-icon time'}).get_text().strip(), 'video_up': item.find('span',{'title':'up主'}).get_text()#这里用class的属性得到的结果是播放量,要用title } #用正则解析网页,关键是确定好字段的定位,一般来说定位在字段上面的class属性里 def re_parse_page(html): pattern = re.compile('<li.*?info.*?title="(.*?)".*?icon-playtime"></i>(.*?)</span>.*?icon-date"></i>(.*?)</span>.*?up-name">(.*?)</a>',re.S) items = re.findall(pattern,html) for item in items: yield { 'video_title': item[0], 'video_view': item[1].strip(), 'video_updateTime':item[2].strip(), 'video_up': item[3].strip() } def main(): #处理翻页 for page in range(1,2):#这里更改爬取的页数 html = get_page(page) for result in bs4_parse_page(html):#这里更改使用哪一种方式解析网页,xpath、bs4、re print(result) if __name__ == '__main__': main()

优秀的个人博客,低调大师

【理论+案例实战】Python数据分析之逻辑回归(logistic regression)

逻辑回归是分类当中极为常用的手段,它属于概率型非线性回归,分为二分类和多分类的回归模型。对于二分类的logistic回归,因变量y只有“是”和“否”两个取值,记为1和0。假设在自变量x1,x2,……,xp,作用下,y取“是”的概率是p,则取“否”的概率是1-p。下面将对最为常用的二分类logistic回归模型的原理以及应用进行介绍。(不想看原理的可以直接调至后半部分,有代码演示) sigmoid函数 在logistic回归的二分类问题中,要用到的函数就是sigmoid函数。sigmoid函数非常简单,他的表达式是 因变量x取值范围是(-∞,+∞),但是sigmoid函数的值域是(0, 1)。因此不管x取什么值其对应的sigmoid函数值一定会落到(0,1)范围内。它的基本图形如下: (当z为0的时候,函数值为0.5;随着z的增大,函数值

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册