糗事源碼
❶ android 夜間模式怎麼實現
原理很簡單:利用setTheme調用不同的風格,而白天與黑夜的區別就是在於夜間模式直接利用黑色背景,其他圖片啊,背景啊,通通變成透明的,就可以了。
<!-- 默認風格 -->
<style name="BrowserThemeDefault" parent="@android:style/Theme">
<item name="bookimage">@drawable/day</item>
</style>
<!-- 夜間模式 --> 其實就是一張透明圖片
<style name="BrowserThemeNight" parent="@android:style/Theme">
<item name="nightimage">@drawable/night</item>
</style>
切換程序:
if (blFlag) {
this.setTheme(R.style.BrowserThemeDefault);
blFlag = false;
} else {
this.setTheme(R.style.BrowserThemeNight);
blFlag = true;
}
❷ python3.4 + requests + re 仿寫糗事百科爬蟲,遇到一個疑惑,求助
網上的Python教程大都是2.X版本的,python2.X和python3.X相比較改動比較大,好多庫的用法不太一樣,我安裝的是3.4.1,就用3.4.1實現一下網頁內容抓取
首先是庫,2.7版本的urllib2庫已經沒有了,我導入的是:
import urllib.request
import re
首先是取得url,直接打開糗事網路直接復制網址
url='http//www..com/hot/'
然後設置headers,偽裝成瀏覽器進行訪問,有的網站會有屏蔽措施,設置過headers可以繞過屏蔽
user_agent='Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers={'User-Agent':user_agent}
然後進行請求,這里3.4和2.7有點不一樣,注意用法
request=urllib.request.Request(url=url,headers=headers)
然後獲取響應結果,注意用法
response=urllib.request.urlopen(request)
此時就抓去了整個網頁源代碼,可以列印一下看看
content=response.read().decode('utf-8')
print(content)
如何抓取想要的內容呢?這里需要正則表達式去匹配
先看看部分源碼的內容,如下:
<div class="article block untagged mb15" id='qiushi_tag_115326209'><div class="author clearfix"><a href="/users/6689931" target="_blank" rel="nofollow"><img src="http://pic.qiushike.com/system/avtnew/668/6689931/medium/20140301102643.jpg" alt="狼牙蠍子尾"/></a><a href="/users/6689931" target="_blank" title="狼牙蠍子尾"><h2>狼牙蠍子尾</h2></a></div><div class="content">「懶惰是可以戰勝飢餓的 」<br/><br/>「但卻輸給了尿」<!--1456774385--></div><div class="thumb"><a href="/article/115326209" target="_blank"><img src="http://pic.qiushike.com/system/pictures/11532/115326209/medium/app115326209.jpg" alt="懶惰是可以戰勝飢餓的 " /></a></div><div class="stats"><span class="stats-vote"><i class="number">1702</i> 好笑</span><span class="stats-comments"><span class="dash"> · </span><a href="/article/115326209" data-share="/article/115326209" id="c-115326209" class="qiushi_comments" target="_blank"><i class="number">26</i> 評論
這是一條內容,可以看出,從<div ....author...開始到</i>結束
然後就寫正則匹配
pattern=re.compile('<div.*?author clearfix">.*?<h2>(.*?)</h2>.*?<div.*?content">(.*?)<!--.*?-->.*?<img src="(.*?)" alt=.*?>.*?</i>')
再然後就可以獲取內容了
items=re.findall(pattern,str(content))
由於控制台不能輸出圖片,就把帶圖片的過濾掉吧
for item in items:
haveImg=re.search('img',item[2])
if not haveImg:
print(item[0]),print(item[1])
然後運行即可
附上源碼圖片以及運行結果:
代碼估計大家都能看懂,正則表達式可能新手不太理解
我稍微說一下
.*?代表一個固定搭配,指盡可能短的匹配
(.*?)代表一個分組,是我們抓取的內容
re.S說明可以匹配到換行,如果沒有re.S就啥也取不到
這個代碼是初稿,比較粗糙,有興趣的可以把它改造成面向對象的模式
❸ 如何用python爬取網站數據
這里簡單介紹一下吧,以抓取網站靜態、動態2種數據為慧返拍例,實驗環境win10+python3.6+pycharm5.0,主要內容如下:
抓取網站靜態數據(數據在網頁源碼中):以糗事網路網站數據為例
1.這里假設我們抓取的數據如下,主要包括用戶昵稱、內容、好笑數和評論數這4個欄位,如下:
對應的網頁源碼如下,包含我們所需要的數據:
2.對應網頁結構,主要代碼如下,很簡單,主要用到requests+BeautifulSoup,其中requests用於請求頁面,BeautifulSoup用於解析頁面:
程序運行截圖如下,已經成功爬取到數據:
抓取網站動態數據(數據不在網頁源碼中,json等文件中):以人人貸網站數據為例
1.這里假設我們爬取的是債券數據,主要包括年利率世型、借款標題、期限、金額和進度這5個欄位信息,截圖如下:
打開網頁源碼中,可以發現數據不在網頁源碼中,按F12抓包分析時,才發現在一個json文件中,如下:
2.獲取到json文件的url後,我們就可以爬取對應數據了,這里使用的包與上面類似,因為是json文件,所以還用了json這個包(解析json),主要內容如下:
程序運行截圖如下,前羨已經成功抓取到數據:
至此,這里就介紹完了這2種數據的抓取,包括靜態數據和動態數據。總的來說,這2個示例不難,都是入門級別的爬蟲,網頁結構也比較簡單,最重要的還是要會進行抓包分析,對頁面進行分析提取,後期熟悉後,可以藉助scrapy這個框架進行數據的爬取,可以更方便一些,效率更高,當然,如果爬取的頁面比較復雜,像驗證碼、加密等,這時候就需要認真分析了,網上也有一些教程可供參考,感興趣的可以搜一下,希望以上分享的內容能對你有所幫助吧。
❹ 求糗事百科源碼
已發往你的 、郵箱、請去查看、包括垃圾郵箱