1. 首页
  2. Python

Python新手都可以做的爬虫,抓取网上 OJ 题库信息

“u003Cdivu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F1524977215639cb4e248f95″ img_width=”1280″ img_height=”780″ alt=”Python新手都可以做的爬虫,抓取网上 OJ 题库信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E最近有朋友在做 OJ 题库,顺手做个小爬虫,导出一份题库列表来看看!u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F1524977224875485d80426b” img_width=”801″ img_height=”202″ alt=”Python新手都可以做的爬虫,抓取网上 OJ 题库信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E目标:浙江大学题库u003Cu002Fpu003Eu003Cpu003E工具:python3.6,requests 库、lxml 库、pycharmu003Cu002Fpu003Eu003Cpu003E思路:先找到网页中题库所在的位置u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F1524977236426a3488b1741″ img_width=”1262″ img_height=”395″ alt=”Python新手都可以做的爬虫,抓取网上 OJ 题库信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E然后我们点击第一页和后面几页,看看 url 的变化u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp9.pstatp.comu002Flargeu002Fpgc-imageu002F1524977250211b94ffcfe9e” img_width=”755″ img_height=”297″ alt=”Python新手都可以做的爬虫,抓取网上 OJ 题库信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F1524977252364f31e7cbd78″ img_width=”873″ img_height=”307″ alt=”Python新手都可以做的爬虫,抓取网上 OJ 题库信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E发现规律了吗?就是 Number 后面的页数变了,其他的都没变,这样就很方便构建循环了,在来看看源码中题目的 title 和 Id 以及 url 的位置u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F152497727507120045f64c2″ img_width=”840″ img_height=”418″ alt=”Python新手都可以做的爬虫,抓取网上 OJ 题库信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E是不是很明显,在 a 标签的属性中有具体的 URL,包括 ID 也在 URL 中出现,而 title在 font 标签中出现了,这样就很简单了,我们直接用 xpath 抓取 td 标签,然后匹配出url 和 title,并且切割 url 把 id 也写出来(这里偷懒就不去上面的 td 中单独抓取 ID了),然后写到字典中吧,这样方便查看,代码如下:u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F1524977295340e2913afc0f” img_width=”762″ img_height=”578″ alt=”Python新手都可以做的爬虫,抓取网上 OJ 题库信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E20 多行代码全部搞定,运行结果如下:u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F15249773074919b7f7aa5a7″ img_width=”628″ img_height=”438″ alt=”Python新手都可以做的爬虫,抓取网上 OJ 题库信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E不到 10 秒全部抓到本地了,当然这里注意不要重复运行,很可能会被封 IP 的哦!将 txt 文档中的内容复制到在线解析 json 的网页中,看看结果u003Cu002Fpu003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F1524977317614a9442165b8″ img_width=”585″ img_height=”621″ alt=”Python新手都可以做的爬虫,抓取网上 OJ 题库信息” inline=”0″u003Eu003Cpu003E完美呈现~!当然了,大家有兴趣可以去题目的 url 中将题目也抓出来,这个可以做为下一步改进的地方!u003Cu002Fpu003Eu003Cpu003E非常简单的一个小爬虫,python 在做这方面的工作还是很给力的,欢迎大家来和我一起学习 python!u003Cu002Fpu003Eu003Cu002Fdivu003E”

原文始发于:Python新手都可以做的爬虫,抓取网上 OJ 题库信息

主题测试文章,只做测试使用。发布者:战鹰,转转请注明出处:http://www.cxybcw.com/13324.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code