python爬虫,交的第一篇作业

今天是我完成的第一个爬虫,离我改变世界又进了了一步!!!

frombs4importBeautifulSoup

importre

info=[]

withopen('C:/Users/Administrator/Desktop/day1houework/Plan-for-combating-master/week1/1_2/1_2answer_of_homework/1_2_homework_required/index.html','r')aswb_data:

Soup=BeautifulSoup(wb_data,'lxml')

images=Soup.find_all(src=re.compile('pic_0'))

Commodity_name=Soup.select('body > div > div > div.col-md-9 > div > div > div > div.caption > h4 > a')

Commodity_price=Soup.find_all('h4',text=re.compile('$'))

Commodity_evaluate=Soup.select('body > div > div > div.col-md-9 > div > div > div > div.caption > p')

Commodity_rating=Soup.select('body > div > div > div.col-md-9 > div > div > div > div.ratings > p > span')

Commodity_score=Soup.find_all('p',text=re.compile('reviews'))

print(Commodity_rating)

defgetrate(values):

job3=values

count_list=0

job1=[]

job=[]

foriinjob3:

count_list=count_list+1

job.append(i)

ifcount_list==5:

job1.append(job)

count_list=0

job=[]

deljob3[:5]

returnjob1

rates=getrate(Commodity_rating)

forimage,name,price,evaluate,rate,scoreinzip(images,Commodity_name,Commodity_price,Commodity_evaluate,rates,Commodity_score):

data={

'image':image.get('src'),

'name':name.get_text(),

'price':price.get_text(),

'evaluate':evaluate.get_text(),

'rate':rate ,

'score':score.get_text()

}

info.append(data)

foriininfo:

print(i['name'],i['image'],i['price'],i['evaluate'],i['rate'],i['score']) 

通过这个爬虫,让我了解到,我对序列和字典的知识还有很大差距,下一步要逐步加强

通过本次作业我学习到了序列的append(),extend(),在for循环下,无法将变量job3进行重新赋值等问题,find_all()的用法,get_text() ,等用法。再加油吧↖(^ω^)↗

for i in list_a  for循环是先去找list_a的内存地址,然后开始循环,循环的话是在list_a的首地址的基础上加一个变量的内存,然后要再找下一个变量的时候再加一个变量的内存

而我们在for循环里给我们的lis_a赋值 如:list_a = list_b  就相当于 把list_b的内存地址给list_a

但是我们for 循环依然还是在原来list_a 的内存地址增加一个内存单元 来实现循环

你可能感兴趣的:(python爬虫,交的第一篇作业)