前情提要:
博主大学毕业自学java开发,跟的B站黑马教程,补了javaEE,HTML+CSS+JS,axios发请求啥的,跟着视频写了苍穹外卖,是一个Springboot+mybatis+mysql的项目,用了不少spring的小框架,先是跟着写了一遍,然后自己又单独写了一遍,在医院信息科实习的时候还做过微信小程序开发前端后端,由于不会包装简历,还有java确实卷,还有本人也确实项目经验不足,投简历了无音讯,有几份要不是工资巨低,要不就是来面我前端开发,我不准备做前端,前端也很菜。痛定思痛决定放弃java,花了23800,最近在合肥达内培训机构培训嵌入式开发0.o。有一说一其实感觉我的java包装一下背背面试题还是能搞个工作做着的,哎!

最近来这边两天,教学形式是直播网课,上午下午,目前属于预科没有晚自习,预科学的linux,python,c,数据采集,ai帮助开发,目前在学python,理论上学着十分轻松,对我来说只要区分它和java区别就可以了,一些内存关系其实是共通的,但我学的还是很累,做过开发的都知道最好的学就是直接敲,我敲的很多,python,linux命令每个都敲完思考,还要补之前没看的视频,所以巨累。

他这边python学的只是基础,我看学时不够,我估计依赖管理pip都不会提(我也是今天才知道pip,和java的maven很像),我准备是空闲时间,做一个python爬虫就当做python基础练手了,不然光学不做点东西以后根本记不得。他们预科已经上了一周,最近在补,2天补了一半了。
后期爬虫做出来了,我会放到gitee上面,这边也会放链接,应该就在最近两周内吧,这周末忙完就做,关注我可以了解后续达内培训发展
=========================================================================
新手爬虫已经做出来了,我一开始以为要很多代码,没想到就一页,就不放gitee了,你们拉下来也没啥用,用了requests和lxml库加上xpath进行元素选中,爬的是豆瓣读书250,练手价值大过实用价值
#https://book.douban.com/top250
#抓书名,作者,评分,介绍
#https://book.douban.com/top250?start=25
import random
import requests
from lxml import etree
#组装url,i为页数页数从1开始
def URL(i):
url=f"https://book.douban.com/top250?start={25*(i-1)}"
return url
#header组装
ua_list = [
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/101.0.0.0 Safari/537.36",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko)Chrome/14.0.835.163 Safari/535.1",
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.50 (KHTML, like Gecko)Version/5.1 Safari/534.50",
"Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.9.168 Version/11.50",
"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NETCLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0;InfoPath.3; .NET4.0C; Tablet PC 2.0; .NET4.0E)"
]
star = int(input("请输入要抓取起始页(从1开始)"))
end = int(input("请输入要抓取结束页(最多10页)"))
grabResult=dict()
for i in range(star,end+1):
#依次拿到每个页面
response= requests.get(url=URL(i),headers={"User-Agent": random.choice(ua_list)})
print(i)
html =etree.HTML(response.text)
#拿到每个项文字
# htmlItems=html.xpath('//td[@valign="top"]')
htmlItems=html.xpath('//tr/td[2]')
for eachItem in htmlItems:
#书名作为每一项的键
bookNames=eachItem.xpath('.//a/text()')
bookName=bookNames[0].strip() if bookNames else None
#书籍英文名
bookENNames=eachItem.xpath('./div[1]/span/text()')
bookENName=bookENNames[0].strip() if bookENNames else None
#书籍作者描述
bookAuthors=eachItem.xpath('.//p[@class="pl"]/text()')
bookAuthor=bookAuthors[0].strip() if bookAuthors else None
#书籍分数
bookStars = eachItem.xpath('.//div[2]/span[@class="rating_nums"]/text()')
bookStar=bookStars[0].strip() if bookStars else None
#书籍评论数,
bookCos = eachItem.xpath('.//div[2]/span[@class="pl"]/text()')
bookCo = bookCos[0]+''
bookCo=bookCo.lstrip("(") if bookCos else None
bookCo=bookCo.rstrip(")") if bookCos else None
bookCo=bookCo.strip() if bookCos else None
#书籍描述
bookDes = eachItem.xpath('.//p/span/text()')
bookDe=bookDes[0].strip() if bookDes else None
#放入字典中
grabResult[bookName]=[bookENName, bookAuthor, bookStar, bookCo, bookDe]
for key in grabResult:
print(f"{key}:{grabResult[key]}",sep="/n")

1451

被折叠的 条评论
为什么被折叠?



