# -*- 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...