❶ python爬蟲需要什麼基礎
網頁知識
html,js,css,xpath這些知識,雖然簡單,但一定需要了解。 你得知道這些網頁是如何構成的,然後才能去分解他們.
HTTP知識
一般爬蟲你需要模擬瀏覽器的操作,才能去獲取網頁的信息
如果有些網站需要登錄,才能獲取更多的資料,你得去登錄,你得把登錄的賬號密碼進行提交
有些網站登錄後需要保存cookie信息才能繼續獲取更多資料
正則表達式
有了正則表達式才能更好的分割網頁信息,獲取我們想要的數據,所以正則表達式也是需要了解的.
一些重要的爬蟲庫
url,url2
beautiul Soup
爬取到的數據我們得有個地方來保存,可以使用文件,也可以使用資料庫,這里我會使用mysql,還有更適合爬蟲的MongoDB資料庫,以及分布式要用到的redis 資料庫
爬蟲框架
PySpider和Scrapy這兩個爬蟲框架是非常NB的,簡單的爬蟲可以使用urllib與urllib2以及正則表達式就能完成,但高級的爬蟲還得用這兩個框架。 這兩個框架需要另行安裝。後面一起學習.
反爬蟲
有時候你的網站數據想禁止別人爬取,可以做一些反爬蟲處理操作。 打比方網路上就無法去查找淘寶上的數據,這樣就避開了搜索引擎的競爭,淘寶就可以搞自己的一套競價排名
分布式爬蟲
使用多個redis實例來緩存各台主機上爬取的數據。
爬蟲要學的東西還是挺多的,想把爬蟲玩得666,基本就是這些知識點吧!
❷ 怎麼利用爬蟲技術抓取淘寶搜索頁面的產品信息
可以通過requests庫re庫進行淘寶商品爬蟲爬取
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\":\"[\d+\.]*\"',html)
tlt = re.findall(r'\"raw_title\"\:\".*?\"',html)
for i in range(len(plt)):
price = eval(plt[i].split(':')[1])
title = eval(tlt[i].split(':')[1])
ilt.append([price,title])
except:
print("F")
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[0],g[1]))
def main():
goods = '書包'
depth = 2
start_url = "https://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)
main()
這段代碼在過去是可以爬取淘寶商品信息,但是因為淘寶的反扒技術升級,便不能讓你大搖大擺地進出自如了。
此外也可以藉助採集實現採集
❸ python爬蟲求一個只用requests庫和beautifulsoup庫抓取淘寶目錄頁面內容的框架。。自己抓不出來。絕望。
可以將網頁下載下來先練習 BeautifulSoup 的解析。
requests 請求也是一樣先各個擊破的學習。
淘寶的請求回來的頁面 html沒有目錄數據,是因為有可能他們的頁面渲染是通過 JS 來渲染的,所以你只用 BeautifulSoup 是不行的。需要使用其他支持 JS 的庫。
❹ 互聯網上的任何東西都可以爬取嗎
寫爬蟲的小夥伴要注意,爬蟲一時爽,但不是一直爬一直爽。
如果你的爬蟲觸犯了法律,可是要承擔責任的哦,那麼什麼樣的爬蟲才算是安全的爬蟲呢?
現在我來結合一下實際情況,給幾點建議吧:
1、爬蟲訪問頻次要控制,別把對方伺服器搞崩潰了
雖然你爬取的信息都是公開的,也不涉及公民隱私,爬取的數據也不用於違法獲利,只是自己弄著玩,但是如果你的爬蟲太瘋狂了,一分鍾請求1萬次,導致對方伺服器應接不暇,不能處理正常業務了,對不起,你這種屬於違法行為,這種爬蟲等同於進行黑客攻擊了,你讓人家不能正常工作了,損害了對方的利益
2、 涉及到個人隱私的信息你不能爬
其實這很好理解,你希望你自己的電話號,身份證號,家庭住址,工作單位,行蹤軌跡這些隱私信息被別人用爬蟲抓取么?當然不希望,別人抓了你的這些信息,你肯定想去報警對不對,讓警察去抓那個壞蛋,ok,你不要去做那個壞蛋。
3、 突破網站的反爬措施,後果很嚴重
正規的網站都會在根目錄下放置
robots.txt,這里就規定了哪些能爬,哪些不能爬,誰可以爬。對於那種反爬特別嚴重的,例如淘寶,你最好別去爬,如果你真的利用你的高智商突破了淘寶的反爬措施,那麼恭喜你,你已經違法了。
4、 不要用爬取的數據做不正當競爭
比如你把大眾點評的評論數據都爬下來了,然後自己搞了一個xx點評,這肯定不行,人家辛辛苦苦的積累的數據,你輕輕鬆鬆的弄下來,直接拿來主義,跟人家搞競爭,你不違法誰違法。
5、 付費內容,你不要抓
既然是付費內容,說明這東西價值很高,付費才能看,你弄下來了,你想幹啥?你私自傳播,就對網站造成了潛在損失。
6、最後一條,突破網站反爬措施的代碼,最好不要上傳到網上
你技術很牛逼,能突破網站的反爬措施,你把這些代碼發布到網上,比如github,你自己沒做啥壞事,可是想做壞事的人利用了你的代碼,入侵了網站,那麼,這種情況下,你也是有責任的,這個聽起來有點冤,但確實存在這樣的風險,所以,最好還是不要這么干。