**如下:
`
import requests
from bs4 import beautifulsoup
import bs4
import urllib
from bs4 import unicodedammit
url =""
try:
headers=
req = urllib.request.request(url,headers=headers)
data = urllib.request.urlopen(req)
data=data.read()
dammit=unicodedammit(data,["utf-8","gbk"])
data=dammit.unicode_markup
soup = beautifulsoup(data, "html.parser")
trs=soup.select("tbody tr") #仿照書上的資料處理過程
print("排名\t學校名稱\t省市\t學校型別\t總分")
for tr in trs:#soup.find('tbody').children:
try:
rank = tr.select('td')[0].text.strip()
name = tr.select('td a')[0].text.strip()
address = tr.select('td')[2].text.strip()
kinds = tr.select('td')[3].text.strip()
grade = tr.select('td')[4].text.strip()
print(rank,name,address,kinds,grade)
except exception as err:
print(err)
except exception as err:
print(err)`
執行結果:
心得體會:剛開始拿到題目的時候有點無從下手,不過仔細研究了一下書上的例子,分析**的源**,照葫蘆畫瓢,到最後竟然寫出來了。也遇到了很多問題,比如輸出的格式不對,一行資料輸出三行,看起來很不美觀,經過查資料,運用strip函式解決。以後還是要多練習。
**部分:
`
import requests
from bs4 import beautifulsoup
import bs4
import urllib
from bs4 import unicodedammit
url =" 8&wq=%e6%b5%b7%e5%b0%94%e6%b4%97%e8%a1%a3%e6%9c%ba&pvid=e0045f183a7c4f358d3d45f2e8f56eae"
try:
headers=
req = urllib.request.request(url,headers=headers)
data = urllib.request.urlopen(req)
data=data.read()
dammit=unicodedammit(data,["utf-8","gbk"])
data=dammit.unicode_markup
soup = beautifulsoup(data, "html.parser")
print("序號\t商品名\t**")
lis=soup.select("ul[class='gl-warp clearfix'] li")
i=0for li in lis:
i=i+1
if i<=50: #商品太多,選了前五十個
try:
names=li.select('div[class="p-name p-name-type-2"] em')[0].text.strip()
prices=li.select('div[class="p-price"] i')[0].text.strip()
print(i,names,prices)
except exception as err:
print(err)
except exception as err:
print(err)
`
執行結果:
心得體會:
**有反爬系統,這裡爬取了京東的商品頁,爬取了海爾洗衣機的前50個商品。這道題跟第一題很類似,但是剛開始的時候出現了商品名稱陣列越界的情況,應該是商品頁的介紹過於冗雜所致,換了個商品就成功實現了。
**部分:
`
import requests
import re
import os
class getimage(object):
def __init__(self,url):
self.url = url
self.headers =
self.path = 'd:\pycharm\pictures'
def download(self,url):
try:
res = requests.get(url,headers=self.headers)
return res
except exception as e:
def parse(self,res):
content = res.content.decode()
# print(content)
img_list = re.findall(r'`
執行結果:
資料採集技術第一次作業
作業要求 用requests和beautifulsoup庫方法定向爬取給定 的資料,螢幕列印爬取的大學排名資訊。import requests from bs4 import beautifulsoup url headers r requests.get url url,headers heade...
資料採集第一次作業 2022
作業1 題目 要求用urllib和re庫方法定向爬取給定 2020中國最好學科排名的資料。輸出資訊如下 2020排名 全部層次 學校型別總分1 前2 中國人民大學 1069.0 2.解題 url headers req urllib.request.request url,headers heade...
第一次作業
1.用較低的成本,開發出滿足客戶需求的軟體,開發的軟體可靠性高,易於維護和移植 2.分為設計階段,開發階段和測試執行階段 1 設計階段 分析客戶需求,明確要解決哪些問題,實現哪些功能,以及確定基本方法 2 開發階段 a.概要設計 畫出流程圖,進行模組化劃分,建立模組的層次結構以及呼叫關係 b.詳細設...