簡單python爬蟲例項

2022-05-11 18:31:52 字數 4204 閱讀 5575

先放上url,

這是豆瓣的乙個**排行榜,這裡爬取了左邊部分的歌曲排行榜部分,爬蟲很簡單,就用到了beautifulsoup和requests這兩個庫,爬取後分吧把內容儲存到txt,csv和資料庫

0x01:儲存到txt

import

requests

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 = '

沒有鏈結

'print

(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

import

requests

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 = '

沒有鏈結

'print

(paiming, name, lianjie)

with open(

'doubai.csv

', '

a', newline='', encoding='

utf-8

') as f:  # 開啟檔案,儲存爬取內容

write =csv.writer(f)

write.writerow([paiming, name, lianjie])

0x03:儲存到資料庫

import

requests

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 = '

沒有鏈結

'print

(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...