資料採集第一次作業

2022-08-09 21:09:23 字數 3047 閱讀 1016

**如下:

`

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.詳細設...