python爬取網易科技新聞

2021-09-23 22:37:47 字數 2732 閱讀 6267

# -*- coding: utf-8 -*-

import requests

from lxml import etree

headers =

# 根據url獲取剛網頁中的新聞詳情頁的**列表

def getnewsdetailurllist(url):

""":param url: 每頁的url

:return newdetaillist:每頁包含的新聞詳情url

"""response = requests.get(url, headers=headers)

html = response.content.decode('gbk')

selector = etree.html(html)

newsdetaillist = selector.xpath('//ul[@id="news-flow-content"]//li//div[@class="titlebar clearfix"]//h3//a/@href')

return newsdetaillist

# 獲取新聞標題

def getnewstitle(detailurl):

""":param detailurl:新聞詳情url

:return newstitle:新聞標題

"""response = requests.get(detailurl, headers=headers)

try:

html = response.content.decode('gbk').encode("utf-8")

selector = etree.html(html)

newstitle = selector.xpath('//div[@class="post_content_main"]//h1/text()')

return newstitle

except:

pass

return " "

# 獲取位址

def getimgurl(detailurl):

response = requests.get(detailurl, headers=headers)

try:

html = response.content.decode('gbk').encode("utf-8")

selector = etree.html(html)

imgurl = selector.xpath('//div[@class="post_text"]//p[@class="f_center"]//img/@src')

return imgurl

except:

pass

return " "

# 獲取新聞詳情內容

def getnewscontent(detailurl):

""":param detailurl: 新聞詳情url

:return newscontent: 新聞內容詳情

"""response = requests.get(detailurl, headers=headers)

html = response.content.decode('gbk')

selector = etree.html(html)

newscontent = selector.xpath('//div[@class="post_text"]//p/text()')

return newscontent

# 將新聞標題和內容寫入檔案

todo

# 獲取翻頁**列表

def geturllist(baseurl, num):

""":param baseurl:基礎**

:param num: 翻到第幾頁

:return urllist: 翻頁**列表

"""urllist =

for i in range(2, num+1):

return urllist

if __name__ == '__main__':

baseurl = ""

num = int(input('輸入你要爬取的頁數: '))

urllist = geturllist(baseurl, num)

detailurl =

for url in urllist:

for i in getnewsdetailurllist(url):

j=0;

while j < num:

print str(getnewstitle(detailurl[j])).decode('string - escape')

print str(getimgurl(detailurl[j])[0]).decode('string - escape')

if getnewstitle(detailurl[j])!=" ":

print detailurl[j]

j = j + 1

print "正在爬取。。。"

# # 將爬取的文字存入文字檔案

with open('news.txt', 'wb') as f:

j=0while j < num:

if getnewstitle(detailurl[j]) != " ":

f.write('\n')

f.write('\n')

f.write('\n')

j = j + 1

print('檔案寫入成功')

爬取網易新聞

爬取網易新聞 在本小節的內容中呢,筆者將會給大家講述如何去過濾我們所不需要的內容。下面的例子,是本人在爬取網易新聞時,遇到的乙個小問題,在定位元素之後,進行列印的時候,出現了部分內容無法正常解析。筆者也是進行了很長時間的嘗試,請教了很多人,才得到的三種方法。我們一起來看。通過寫入檔案的方法過濾元素 ...

Python 爬蟲例項(4) 爬取網易新聞

自己閒來無聊,就爬取了網易資訊,重點是分析網頁,使用抓包工具詳細的分析網頁的每個鏈結,資料儲存在sqllite中,這裡只是簡單的解析了新聞頁面的文字資訊,並未對資訊進行解析 僅供參考,不足之處請指正 coding utf 8 import random,re import sqlite3 impor...

python爬取學校新聞

這是我做的第乙個python爬蟲專案,在這裡與大家分享出來 目標 下面展示一下我的 import requests from bs4 import beautifulsoup sessions requests.session i 1 對應第1頁資訊 page str i if i 1 newsma...