tag 标签: jupyter notebook

相关博文
  • 热度 24
    2017-11-12 09:31
    2068 次阅读|
    0 个评论
    (一)1、功能描述: 目标:获取淘宝搜索页面的信息,提取商品名称和价格; 理解:淘宝的搜索接口,翻页的处理; 技术路线 : requests,re 2、程序的结构设计、 步骤1:提交商品搜索请求,循环获取页面; 步骤2:对每个页面,提取商品名称和价格信息; (二)代码 import requests import re def getHTMLText(url): try: r = requests.get(url,timeout=30) r.raise_for_status() r.encoding = r.apparent_encoding return r.text except: return def parsePage(ilt,html): try: plt = re.findall(r'\view_price\:\ *\',html) tlt = re.findall(r'\raw_title\\:\.*?',html) for i in range(len(plt)): price = eval(plt .split(':') ) title = eval(tlt .split(':') ) ilt.append( ) except: print() def printGoodsList(ilt): tplt = {:4}\t{:8}\t{:16} print(tplt.format(序号,价格,商品名称)) count = 0 for g in ilt: count = count +1 print(tplt.format(count,g ,g )) def main(): goods = 书包 depth = 2; start_url = http://s.taobao.com/search?q= + goods infoList=[] for i in range(depth): try: url = start_url + s= + str(44*i) html = getHTMLText(url) parsePage(infoList,html) except: continue printGoodsList(infoList) 输出结果 ​ ​
  • 热度 18
    2017-11-11 17:01
    2377 次阅读|
    0 个评论
    (一) 功能描述: 目标:获取上交所和深交所所有股票的名称和交易信息; 输出:保存到文件 技术路线:requests-bs4-re 候选数据网站的选择 新浪股票: http://finance.sina.com.cn/stock/ 百度股票: https://gupiao.baidu.com/stock/ 网站选取原则: 股票信息静态存在于HTML页面中,非js代码生成,没有robots协议限制; 程序的结构设计 步骤1:从东方财富网获取股票列表; 步骤2:根据股票列表逐个到百度股票获取个股信息; 步骤3:将结果存储到文件; (二)代码 import requests from bs4 import BeautifulSoup import traceback import re def getHTMLText(url,code='utf-8'): try: r = requests.get(url,timeout=30) r.raise_for_status() r.encoding = code return r.text except: return def getStockList(lst,stockURL): html = getHTMLText(stockURL,'GB2312') soup = BeautifulSoup(html,'html.parser') a = soup.find_all('a') for i in a: try: href = i.attrs lst.append(re.findall(r \d{6},href) ) except: continue def getStockInfo(lst,stockURL,fpath): count = 0 for stock in lst: url = stockURL + stock + .html html = getHTMLText(url) try: if html == : continue infoDict = {} soup=BeautifulSoup(html,'html.parser') stockInfo = soup.find('div',attrs={'class':'stock-bets'}) name = stockInfo.find_all(attrs={'class':'bets-name'}) infoDict.update({'股票名称':name.text.split() }) keyList = stockInfo.find_all('dt') valueList = stockInfo.find_all('dd') for i in range(len(keyList)): key = keyList .text val = valueList .text infoDict = val with open(fpath,'a',encoding='utf-8') as f: f.write(str(infoDict)+'\n') count = count + 1 print(\r当前进度:{:.2f}%.format(count*100/len(lst)),end=) except: traceback.print_exc() continue def main(): stock_list_url = http://quote.eastmoney.com/stocklist.html stock_info_url = https://gupiao.baidu.com/stock/ output_file = H://BaiduStockInfo.txt slist=[] ​ ​ getStockList(slist,stock_list_url) getStockInfo(slist,stock_info_url,output_file) main()  
  • 热度 16
    2017-11-9 15:18
    2066 次阅读|
    0 个评论
    (一) 功能描述 输入 : 大学排名 URL 链接 输出:大学排名信息的屏幕输出(排名,大学名字,总分) 技术路线: requests-bs4 定向爬虫:仅对输入 URL 进行爬取,不扩展爬取 程序的结构设计 步骤 1 :从网络上获取大学排名网页内容;getHTMLText() 步骤 2 :提取网页内容中信息到合适的数据结构;fillUnivList() 步骤 3 :利用数据结构展示并输出结果;printUnivList() (二)代码实现 import requests import bs4 from bs4 import BeautifulSoup def getHTMLText(url): try: r = requests.get(url,timeout=30) r.raise_for_status() r.encoding = r.apparent_encoding return r.text except: return def fillUnivList(ulist,html): soup = BeautifulSoup(html,html.parser) for tr in soup.find('tbody').children: if isinstance(tr,bs4.element.Tag): tds = tr('td') ulist.append( .string,tds .string,tds .string]) def printUnivList(ulist,num): print({:^10}\t{:^6}\t{:^10}.format(排名,学校名字,所在地)) for i in range(num): u = ulist print({:^10}\t{:^6}\t{:^10}.format(u ,u ,u )) def main(): uinfo = [] url = http://www.zuihaodaxue.com/zuihaodaxuepaiming2016.html html = getHTMLText(url) fillUnivList(uinfo,html) printUnivList(uinfo,20) main() 输出效果 ​ ​ (三)中文对齐的原因 当中文字符宽度不够时,采用西文字符填充;中西文字符占用的宽度不同。 采用中文字符的空格填充 chr(12288)
  • 热度 15
    2017-11-9 09:02
    1078 次阅读|
    0 个评论
    YAML: 信息无类型,文本信息比例最高,可读性好 (一)信息的标记 标记后的信息可以形成信息组织结构,增加了维度; 标记后的信息可以用于通信、存储或展示; 标记的结构与信息一样具有重要的价值; 1、XML XML: 最早的通用标记语言,可扩展性好,但是繁琐; Internet 上的信息交互与传递; 2、JSON JSON: 信息有类型,适合程序处理,较 XML 简洁; 移动应用云端和节点的信息通信,无注释; 3、YAML YAML:信息无类型,文本信息比例最高,可读性好 各类系统的配置文件,有注释易读 (二)信息的提取 方法一:完整解析信息的标记形式,再提取关键信息。需要标记解析器,例如: bs4 库的标签树遍历;      优点:信息解析准确;      缺点:提取过程繁琐,速度慢 方法二:无视标记形式,直接搜索关键信息 测试代码 1、.find_all(name,attrs,recursive,string,**kwargs)   返回一个列表 类型,存储查找结果。 (1) name: 对标签名称的检索字符串 (2)attrs: 对标签属性值检索的字符串,可标注属性检索 (3)recursive: 是否对子孙全部检索,默认 True (4)string: …/ 中字符串区域的检索字符串 ​ ​
  • 热度 16
    2017-11-8 19:16
    1285 次阅读|
    0 个评论
    Beautiful Soup 可以对 html,xml 格式进行解析并且提取相关的信息。 参考链接: https://www.crummy.com/software/BeautifulSoup/ (一)Beautiful Soup的使用 from bs4 import BeautifulSoup soup = BeautifulSoup(‘pdata/p’,’html.parser’) 测试代码 (二)Beautiful Soup 库解析器 Beautiful Soup 类的基本元素 测试代码 (三)用bs4库遍历HTML 1、HTML基本格式 2、标签数的下行遍历 (1)head标签 (2)body标签 (3)遍历儿子节点 3、标签树的上行遍历 测试代码 4、标签树的平行遍历 平行遍历发生在同一个父节点下 测试代码 (四)bs4库的HTML格式化和编码 bs4库将任何读入的HTML代码和字符串转换为utf-8编码 ​ ​