今天無意中發現了一個練習爬蟲的網站:
http://glidedsky.com/
做的挺不錯的 強烈推薦
第一關是將網頁中所有的數字相加,因為格式十分整齊,可以用多種方法來實現,一並記錄在這里了,注意在get的時候要加上在cookie
import requests from bs4 import BeautifulSoup import re from requests_html import HTMLSession from lxml import etree header = {"cookie": "自己的cookie"} r=requests.get("http://glidedsky.com/level/web/crawler-basic-1",headers=header) r.encoding = r.apparent_encoding html = BeautifulSoup(r.text,'lxml') anss=0 #css選擇器 x=html.select("div[class='col-md-1']") for i in x: anss+=int(i.get_text().strip()) print(anss) """ #正則 s='''<div class="col-md-1">(.+?)</div>''' x=re.findall(s,r.text,re.DOTALL) for i in x: anss+=int(i.strip()) print(anss) """ """ #HTMLSession.get().html.find()方法 session=HTMLSession() url=session.get("http://glidedsky.com/level/web/crawler-basic-1",headers=header) #content=url.html.find('div.col-md-1:nth-child(1)',first=True) for i in range(1,1201): s='div.col-md-1:nth-child('+str(i)+')' content=url.html.find(s,first=True) anss+=int(content.text) print(anss) """ """ #xpath路徑 label=etree.HTML(r.text) content=label.xpath('//div[@class="col-md-1"]/text()') #提取div標簽中class名為"col-md-1"的內容信息,並且存入一個列表中 for i in content: anss+=int(i.replace('\n', '').strip()) print(anss) """