先放上url,
這是豆瓣的乙個**排行榜,這裡爬取了左邊部分的歌曲排行榜部分,爬蟲很簡單,就用到了beautifulsoup和requests這兩個庫,爬取後分吧把內容儲存到txt,csv和資料庫
0x01:儲存到txt
importrequests
from bs4 import
beautifulsoup
url = '
'html = requests.get(url=url).text
soup = beautifulsoup(html, '
lxml')
ul = soup.find(attrs=) #
找到存放排行榜**的ul標籤
lis = ul.find_all(name='
li') #
獲取每一首**對應的標籤
for li in
lis:
paiming = li.find(name='
span
').string
name = li.find(name='
a', attrs=).string
a = li.find(name='
a', attrs=) #
獲取存存放連線的a標籤,再在a標籤裡獲取連線
if a !=none:
img = a.find(name='
img') #
獲取連線的img標籤
lianjie = img.attrs['
src'] #
獲取到連線,下面進行乙個判斷,前十首歌曲有鏈結,後十首沒有
else
: lianjie = '
沒有鏈結
(paiming, name, lianjie)
with open(
'dou_bai_music.txt
', '
a', encoding='
utf-8
') as f:
f.write(paiming+'
\t'+name+'
\t'+lianjie+'\n'
) f.close()
0x02:儲存到csv
importrequests
from bs4 import
beautifulsoup
import
csvurl = '
'html = requests.get(url=url).text
soup = beautifulsoup(html, '
lxml')
ul = soup.find(attrs=) #
找到存放排行榜**的ul標籤
lis = ul.find_all(name='
li') #
獲取每一首**對應的標籤
with open('
doubai.csv
', '
a', newline='', encoding='
utf-8
') as f: # 開啟檔案,寫入表頭
write =csv.writer(f)
write.writerow(['排名
', '
歌名', '鏈結'
])for li in
lis:
paiming = li.find(name='
span
').string
name = li.find(name='
a', attrs=).string
a = li.find(name='
a', attrs=) #
獲取存存放連線的a標籤,再在a標籤裡獲取連線
if a !=none:
img = a.find(name='
img') #
獲取連線的img標籤
lianjie = img.attrs['
src'] #
獲取到連線
else
: lianjie = '
沒有鏈結
(paiming, name, lianjie)
with open(
'doubai.csv
', '
a', newline='', encoding='
utf-8
') as f: # 開啟檔案,儲存爬取內容
write =csv.writer(f)
write.writerow([paiming, name, lianjie])
0x03:儲存到資料庫
importrequests
from bs4 import
beautifulsoup
import
pymysql
url = '
'html = requests.get(url=url).text
soup = beautifulsoup(html, '
lxml')
ul = soup.find(attrs=) #
找到存放排行榜**的ul標籤
lis = ul.find_all(name='
li') #
獲取每一首**對應的標籤
db = pymysql.connect(host='
localhost
', user='
root
', password='
root
', port=3306, db='
spiders
') # 連線資料庫
cursor =db.cursor()
print('
資料庫連線成功')
sql = '
create table if not exists music (paiming int not null, name varchar(255) not null, lianjie varchar(255) not null, primary key (paiming))
' # 建立資料表,指定字段
cursor.execute(sql)
print('
資料表建立完成!')
for li in
lis:
paiming = li.find(name='
span
').string
name = li.find(name='
a', attrs=).string
a = li.find(name='
a', attrs=) #
獲取存存放連線的a標籤,再在a標籤裡獲取連線
if a !=none:
img = a.find(name='
img') #
獲取連線的img標籤
lianjie = img.attrs['
src'] #
獲取到連線
else
: lianjie = '
沒有鏈結
(paiming, name, lianjie)
sql = '
insert into music(paiming, name, lianjie) values(%s, %s, %s)
' # 插入資料,判斷是否插入成功
try:
cursor.execute(sql, (paiming, name, lianjie))
db.commit()
print('
資料插入完成!!')
except
:
print('
插入失敗')
db.rollback()
db.close() # 關閉資料庫
*******************************不積跬步,無以至裡。******************************
python爬蟲簡單例項
通過在網頁上右鍵來檢視審查元素,然後在html內可以發現以下內容,而爬蟲也正是要爬取這些內容。處理標籤開始 defstart element self,name,attrs if name map name attrs title number attrs href 處理標籤結束 defend el...
簡單的python爬蟲例項
目標 爬取搜尋出來的所有 中東人 的 先說一下思路 來看爬取的 import requests import re from bs4 import beautifulsoup address url list 用於儲存,每個頁面的url列表 構造url def get url list for i ...
python爬蟲簡單 python爬蟲 簡單版
學過python的帥哥都知道,爬蟲是python的非常好玩的東西,而且python自帶urllib urllib2 requests等的庫,為爬蟲的開發提供大大的方便。這次我要用urllib2,爬一堆風景。先上重點 1 response urllib2.urlopen url read 2 soup...