1. 程式人生 > >python爬蟲之Request,BeautifulSoup進階

python爬蟲之Request,BeautifulSoup進階

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import requests
from bs4 import BeautifulSoup
from datetime import datetime
import re


res = requests.get('http://news.sina.com.cn/o/2017-12-01/doc-ifyphtze3020095.shtml')
res.encoding = 'utf-8'

#列印文章標題
soup = BeautifulSoup(res.text , 'html.parser')
print(soup.select('#artibodyTitle')[0].text)

#獲取文章發表時間
timesource = soup.select('#navtimeSource')[0].contents[0].strip()

#獲取文章來源
#wsource = soup.select('#navtimeSource')[0].contents[1].text.strip()
wsource = soup.select('#navtimeSource span a')[0].text

#獲取文章來源連結 
wa = soup.select('#navtimeSource span a')[0].get('href')

#時字串轉時間格式
dt = datetime.strptime(timesource,'%Y年%m月%d日%H:%M')
#時間格式轉字串  
#dtstr = dt.strftime('%Y-%m-%d %H:%M:%S')  
#將時間,來源,連結依次列印  
print(dt,wsource,wa)


#取得文章內容
#方式1  
'''
article = []
for p in soup.select('#artibody p')[:-1]:
	article.append(p.text)

print(' '.join(article))
'''
#方式2  
print(' '.join(p.text.strip() for p in soup.select('#artibody p')[:-1]))


#選取新聞編輯者名稱
print(soup.select('.article-editor')[0].text)
#print(soup.select('.article-editor')[0].text.lstrip('責任編輯:'))


#剖析新聞識別符號
#方法1
newsurl = 'http://news.sina.com.cn/o/2017-12-01/doc-ifyphtze3020095.shtml'
newsid = newsurl.split('/')[-1].rstrip('.shtml').lstrip('doc-i')
print('newsid =',newsid)
'''
#方法2
m = re.search('doc-i(.+).shtml',newsurl)
print(m.group(0))
print(m.group(1))
'''

結果展示:


相關推薦

python爬蟲Request,BeautifulSoup

#!/usr/bin/env python3 # -*- coding: utf-8 -*- import requests from bs4 import BeautifulSoup from datetime import datetime import re re

Python爬蟲從入門到(1)Python概述

支持 color python運行 nbsp python自動化 人工智 應用領域 翻譯 接下來 1.計算機語言概述 (1).語言:交流的工具,溝通的媒介 (2).計算機語言:人跟計算機交流的工具 (3).Python是計算機語言的一種 2.Python編程語言   代碼:

Python爬蟲從入門到(2)爬蟲簡介

法律 進階 爬蟲 哪裏 back 目標 ack 數據分析 取數 1.爬蟲入門:使用代碼模擬真實用戶發送網絡請求批量獲取數據1).爬蟲價值: 1.買賣數據(高端領域特別貴) 2.數據分析(出分析報告) 3.流量 4.阿裏指數,百度指數2).合法性:灰色

Python爬蟲從入門到(2)urllib庫的使用

windows 6.0 賬號 高級 manager cname 4.5 clr python爬蟲 1.什麽是Urllib(官網地址:https://docs.python.org/3/library/urllib.html#module-urllib) Urllib是pyt

Python爬蟲從入門到(4)xpath的使用

names 擴展函數 .get 結果 定義 提高 調用函數 命名空間 concat 官網地址:https://lxml.de/xpathxslt.html 導入: from lxml import etree lxml.tree 支持 ElementTree 和 El

Python 爬蟲從入門到路(一)

通用爬蟲和聚焦爬蟲 根據使用場景,網路爬蟲可分為 通用爬蟲 和 聚焦爬蟲 兩種. 通用爬蟲 通用網路爬蟲 是 捜索引擎抓取系統(Baidu、Google、Yahoo等)的重要組成部分。主要目的是將網際網路上的網頁下載到本地,形成一個網際網路內容的映象備份。 通用

Python 爬蟲從入門到路(二)

上一篇文章我們對爬蟲有了一個初步認識,本篇文章我們開始學習 Python 爬蟲例項。 在 Python 中有很多庫可以用來抓取網頁,其中內建了 urllib 模組,該模組就能實現我們基本的網頁爬取。 在 Python2.x 和 Python3.x 中 urllib 模組是不一樣的,但是用法上差不多,我們先

Python 爬蟲從入門到路(三)

之前的文章我們做了一個簡單的例子爬取了百度首頁的 html,本篇文章我們再來看一下 Get 和 Post 請求。 在說 Get 和 Post 請求之前,我們先來看一下 url 的編碼和解碼,我們在瀏覽器的連結裡如果輸入有中文的話,如:https://www.baidu.com/s?wd=貼吧,那麼瀏覽器會自

Python 爬蟲從入門到路(四)

之前的文章我們做了一個簡單的例子爬取了百度首頁的 html,我們用到的是 urlopen 來開啟請求,它是一個特殊的opener(也就是模組幫我們構建好的)。但是基本的 urlopen() 方法不支援代理、cookie等其他的HTTP/HTTPS高階功能,所以我們需要用到 Python 的 opener 來自

Python 爬蟲從入門到路(五)

在之前的文章中我們帶入了 opener 方法,接下來我們看一下 opener 應用中的 ProxyHandler 處理器(代理設定)。 使用代理IP,這是爬蟲/反爬蟲的第二大招,通常也是最好用的。 很多網站會檢測某一段時間某個IP的訪問次數(通過流量統計,系統日誌等),如果訪問次數多的不像正常人,它會禁止

Python 爬蟲從入門到路(六)

在之前的文章中我們介紹了一下 opener 應用中的 ProxyHandler 處理器(代理設定),本篇文章我們再來看一下 opener 中的 Cookie 的使用。 Cookie 是指某些網站伺服器為了辨別使用者身份和進行Session跟蹤,而儲存在使用者瀏覽器上的文字檔案,Cookie可以保持登入資訊到

Python 爬蟲從入門到路(七)

在之前的文章中我們一直用到的庫是 urllib.request,該庫已經包含了平常我們使用的大多數功能,但是它的 API 使用起來讓人感覺不太好,而 Requests 自稱 “HTTP for Humans”,說明使用更簡潔方便。 Requests 唯一的一個非轉基因的 Pyth

Python 爬蟲從入門到路(八)

在之前的文章中我們介紹了一下 requests 模組,今天我們再來看一下 Python 爬蟲中的正則表達的使用和 re 模組。 實際上爬蟲一共就四個主要步驟: 明確目標 (要知道你準備在哪個範圍或者網站去搜索) 爬 (將所有的網站的內容全部爬下來) 取 (去掉對我們沒用處的資料) 處理資料(按照

Python 爬蟲從入門到路(九)

之前的文章我們介紹了一下 Python 中的正則表示式和與爬蟲正則相關的 re 模組,本章我們就利用正則表示式和 re 模組來做一個案例,爬取《糗事百科》的糗事並存儲到本地。 我們要爬取的網站連結是 https://www.qiushibaike.com/text/page/1/ 。

Python 爬蟲從入門到路(十一)

之前的文章我們介紹了一下 Xpath 模組,接下來我們就利用 Xpath 模組爬取《糗事百科》的糗事。 之前我們已經利用 re 模組爬取過一次糗百,我們只需要在其基礎上做一些修改就可以了,為了保證專案的完整性,我們重新再來一遍。 我們要爬取的網站連結是 https://www.qiushibai

Python 爬蟲從入門到路(十二)

之前的文章我們介紹了 re 模組和 lxml 模組來做爬蟲,本章我們再來看一個 bs4 模組來做爬蟲。 和 lxml 一樣,Beautiful Soup 也是一個HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 資料。 lxml 只會區域性遍歷,而Beautiful Soup

Python 爬蟲從入門到路(十三)

之前的文章我們介紹了一下 BeautifulSoup4 模組,接下來我們就利用 BeautifulSoup4 模組爬取《糗事百科》的糗事。 之前我們已經分別利用 re 模組和 Xpath 模組爬取過糗百,我們只需要在其基礎上做一些修改就可以了,為了保證專案的完整性,我們重新再來一遍。 我們要爬取

Python 爬蟲從入門到路(十四)

之前的文章我們已經可以根據 re 模組,Xpath 模組和 BeautifulSoup4 模組來爬取網站上我們想要的資料並且儲存在本地,但是我們並沒有對儲存資料的格式有要求,本章我們就來看資料的儲存格式 JSON 及 Python 中的 json 模組。 JSON(JavaScript Object Not

Python 爬蟲從入門到路(十五)

之前的文章我們介紹了一下 Python 的 json 模組,本章我們就介紹一下之前根據 Xpath 模組做的爬取《糗事百科》的糗事進行豐富和完善。 在 Xpath 模組的爬取糗百的案例中我們只是爬取了其中的糗事,然後儲存到本地,並沒有作者姓名,頭像等資訊,所有我們通過之前介紹的 path 模組講獲取到的完整

Python 爬蟲從入門到路(十六)

之前的文章我們介紹了幾種可以爬取網站資訊的模組,並根據這些模組爬取了《糗事百科》的糗百內容,本章我們來看一下用於專門爬取網站資訊的框架 Scrapy。 Scrapy是用純Python實現一個為了爬取網站資料、提取結構性資料而編寫的應用框架,用途非常廣泛。Scrapy 使用了 Twisted['twɪstɪd