網路資料採集的一般流程:
1、通過**網域名稱獲取html資料;
2、根據目標資訊解析資料;
3、儲存目標資訊;
4、若有必要,移到另乙個網頁重複這個過程。
一、通過**網域名稱獲取html資料;
使用requests庫來進行獲取html資料
import requests
url =
''r = requests.get(url)
html = r.text.encode(r.encoding)
.decode(
)print
(html)
二、根據目標資訊解析資料;1、html網頁結構;
乙個頁面包含了head和body兩部分的內容,需要的內容一般是在body中。
2、利用beautifulsoup解析html
#根據目標資訊解析html文件
import requests
from bs4 import beautifulsoup
url =
''r = requests.get(url)
html = r.text.encode(r.encoding)
.decode(
)soup = beautifulsoup(html,
'lxml'
)print
(soup.head)
print
(soup.body.h2)
print
(soup.findall(
'h2'
))
三、儲存目標資訊;將爬取的資訊按照自己的需要儲存為相應的**或是文字檔案
#儲存目標資訊,將資訊儲存至.csv,.txt等檔案中
import requests
from bs4 import beautifulsoup
import pandas as pd
url =
''r = requests.get(url)
html = r.text.encode(r.encoding)
.decode(
)soup = beautifulsoup(html,
'lxml'
)l =
[x.text for x in soup.findall(
'h2')]
#讀取中文資訊
df = pd.dataframe(l,columns =
['data'])
df.to_excel(
'爬蟲.xlsx'
)df.to_csv(
'爬蟲.csv'
)#通常訪問較大的資料
四、移至其他網頁爬取。1、批量進行網頁爬取,相關命令的作用在備註中進行了詳細的說明
#轉至其他網頁進行資料爬取
import requests
from bs4 import beautifulsoup
import pandas as pd
url =
''r = requests.get(url)
html = r.text.encode(r.encoding)
.decode(
)soup = beautifulsoup(html,
'lxml'
)l =
[x.text for x in soup.findall(
'h2')]
df = pd.dataframe(l,columns =
[url]
)links =
[i for i in soup.findall(
'a')\
if i.has_attr(
'href'
)and i.attrs[
'href'][
0:7]
=='/python'
]#print(soup)
relative_urls =
set(
[i.attrs[
'href'
]for i in links]
)#得到絕對路徑並轉換為集合的形式進行去重操作
#print(relative_urls)
absolute_urls =
#進行**拼接,獲取絕對路徑
absolute_urls.discard(url)
#去除第乙個**,因為我們前面已經爬取了該**的內容
for i in absolute_urls:
ri = requests.get(i)
htmli = ri.text.encode(ri.encoding)
.decode(
) soupi = beautifulsoup(htmli,
'lxml'
) li =
[x.text for x in soupi.findall(
'h2')]
dfi = pd.dataframe(li,columns =
[i])
df = df.join(dfi,how =
'outer'
)
df.to_csv(
'data.csv'
)#將最終爬取的全部結果儲存到名稱為data的.csv檔案
python爬取網頁資料
import refrom urllib.request import urlopen 爬取網頁資料資訊 def getpage url response urlopen url return response.read decode utf 8 defparsepage s ret re.find...
Python 簡單爬取網頁資料
爬取我的csdn網頁 import requests 時出現紅線,這時候,我們將游標對準requests,按快捷鍵 alt enter,pycharm會給出解決之道,這時候,選擇install package requests,pycharm就會自動為我們安裝了,我們只需要稍等片刻,這個庫就安裝好了...
python爬取網頁資料例項 一
coding utf 8 from lxml import etree import urllib2 import random import urlparse 設定網路 proxy info proxy support urllib2.proxyhandler openner urllib2.bu...