從現(xiàn)在開始漓帅,我們將進(jìn)入實(shí)戰(zhàn)階段,本課程主要知識點(diǎn)包括三個:
1)一個簡單的爬取豆瓣讀書內(nèi)容示例
2)使用PyCharm進(jìn)行代碼調(diào)試方法
3)初步學(xué)會使用XPath提取html元素
一番官、一個簡單的爬取豆瓣讀書內(nèi)容示例
我們現(xiàn)在要爬取豆瓣讀書中的新書速遞中的書籍信息,主要提取它們的書籍標(biāo)題肴捉、書籍內(nèi)容鏈接以及發(fā)布時(shí)間鬓长。如下圖:
1為我們要爬取的豆瓣讀書的URL地址,2為我們要爬取的具體內(nèi)容的HTML元素區(qū)塊巍糯。那么對照我們使用Scrapy應(yīng)該怎么寫呢啸驯?
第一步:在scrapy中,我們把要爬取的目標(biāo)網(wǎng)頁的URL放在start_urls中祟峦,start_urls是可以存放多個url地址的罚斗,至于它們是怎么一個個加載這些url的,我會在后面講解源碼的課程中會詳細(xì)講解宅楞。第二步就是獲取ul標(biāo)簽下的所有l(wèi)i標(biāo)簽的內(nèi)容针姿,因?yàn)槲覀冃枰臅畔⒍荚谶@些li里面。
從上面的第二個紅色框厌衙,我們發(fā)現(xiàn)它是先通過找到id為content距淫,然后找出子div,再找出這個子div下的第二個子div婶希,再就是ul/li榕暇。這個只是其中一種方法,這種方法主要是直接使用瀏覽器自帶的“Copy XPath”功能來實(shí)現(xiàn)的(Chrome瀏覽器的實(shí)現(xiàn)方式為選中區(qū)域喻杈,右擊彤枢,Copy,選擇Copy XPath)筒饰。
實(shí)際上我們完全可以使用另一種方法獲取到這個li缴啡,方法很多,下面任舉一例子:
在(圖二)豆瓣讀書爬蟲源代碼中有一個name ="douban_book"龄砰,這個是每個爬蟲文件的唯一名稱盟猖,我們在執(zhí)行爬蟲時(shí)就會用到它。
二换棚、使用PyCharm進(jìn)行代碼調(diào)試
對于程序員來說式镐,我們深知代碼調(diào)試的重要性,那么我們?nèi)绾问褂肞yCharm來調(diào)試爬蟲代碼呢固蚤?
我們新建一個main.py文件娘汞,如下圖:
我們只要使用debug方法執(zhí)行這個main.py,就會進(jìn)入我們在對應(yīng)的douban_book文件的斷點(diǎn)中夕玩。
到此你弦,一個簡單的Scrapy使用的“hello world”已經(jīng)完成惊豺。接下來我會在這個“hello world”基礎(chǔ)上去講解XPath選擇器的詳細(xì)用法,items的設(shè)計(jì)禽作,以及如何使用pipeline把item中的數(shù)據(jù)保存到Mysql數(shù)據(jù)庫表中尸昧。