因?yàn)榕既坏臋C(jī)會(huì)知道了經(jīng)濟(jì)學(xué)人這個(gè)網(wǎng)站昭卓,下面是引自百度百科的相關(guān)介紹:
《經(jīng)濟(jì)學(xué)人》是一份由倫敦經(jīng)濟(jì)學(xué)人報(bào)紙有限公司出版的雜志掺逼,創(chuàng)辦于1843年9月慢睡,創(chuàng)辦人詹姆士·威爾遜疲恢。雜志的大多數(shù)文章寫(xiě)得機(jī)智,幽默睹晒,有力度趟庄,嚴(yán)肅又不失詼諧,并且注重于如何在最小的篇幅內(nèi)告訴讀者最多的信息伪很。
雜志主要關(guān)注政治和商業(yè)方面的新聞戚啥,但是每期也有一兩篇針對(duì)科技和藝術(shù)的報(bào)導(dǎo),以及一些書(shū)評(píng)锉试。雜志中所有文章都不署名猫十,而且往往帶有鮮明的立場(chǎng),但又處處用事實(shí)說(shuō)話(huà)键痛。主編們認(rèn)為:寫(xiě)出了什么東西炫彩,比出自誰(shuí)的手筆更重要。
但是該網(wǎng)站的文章一個(gè)賬號(hào)每周只能免費(fèi)閱讀3篇絮短,訂閱價(jià)格大約是一個(gè)月100港元。
假如是經(jīng)常閱讀該網(wǎng)站文章自然是訂閱支持一下更好昨忆,但假如只是偶爾想看幾篇文章訂閱的性?xún)r(jià)比就不高了丁频。
但是我在點(diǎn)開(kāi)網(wǎng)頁(yè)的過(guò)程中發(fā)現(xiàn)到文章先是被完全加載出來(lái)后突然消失到只剩標(biāo)題的,由此我猜測(cè)該網(wǎng)站的每周3篇文章上限這條規(guī)定是識(shí)別Cookie后執(zhí)行的邑贴,由此我再猜測(cè)假如果我只寫(xiě)一個(gè)requests
請(qǐng)求是不是就能拿到含有文章信息的網(wǎng)頁(yè)源代碼呢席里?然后再解析一下是不是就能拿到文章的文本了呢?
下面是我寫(xiě)的一個(gè)簡(jiǎn)單的文章爬蟲(chóng):
import requests
from pyquery import PyQuery as pq
url = 'https://www.economist.com/special-report/2017/10/05/commodities-are-not-always-bad-for-you'
def get_text(url):
html = requests.get(url).text
doc = pq(html)
article = doc('article')
h1 = article('h1 span').text() # 文章標(biāo)題
print(h1+'\n')
rubric = article('.blog-post__rubric').text() # 紅字標(biāo)題
print(rubric+'\n')
div_imgs = article('.blog-post__image').items() # 文章圖片
text = article('.blog-post__text') # 文章文本
ps = text('p').items() # 文章段落
h2s = text('.xhead').items() # 文章小標(biāo)題
for p in ps:
if not p.text().startswith('Upgrade your inbox'): # 過(guò)濾一行廣告文本
print(p.text()+'\n')
for h2 in h2s:
print(h2.text()+'\n')
for div_img in div_imgs:
img = div_img('img').attr.src
print(img)
get_text(url)
這個(gè)爬蟲(chóng)沒(méi)加任何headers
拢驾,但確實(shí)能拿到文章內(nèi)容和文章中的配圖奖磁,只是不知道小標(biāo)題在文章的什么位置。
當(dāng)然這是一個(gè)不規(guī)范的很簡(jiǎn)陋的爬蟲(chóng)腳本繁疤。目的只是為了個(gè)人能多閱讀兩篇經(jīng)濟(jì)學(xué)人雜志文章咖为。下面是該爬蟲(chóng)運(yùn)行示例: