暑假来临,我申请了实验室留校,在一边完成老师给的任务以外,还想做点其他事,于是从近期很火的垃圾分类中得到了启发,准备写一个可以垃圾分类查询的爬虫,考虑到可以给其他人用,在其他人没有Python各种库的情况下,我写完后打算用pyinstaller打包成exe文件,以供大家使用。
一:我首先使用了我近期在研究的爬虫中的selenium库写了一个垃圾分类的爬虫
1.找到爬取网站https://lajifenleiapp.com/
2.找到查询输入标签和查询标签
3.然后就是selenium的操作步骤了,编写代码使用Chrome打开网站然后模拟输入想要查询的垃圾,然后点击查询
from selenium import webdriver
m=input()
browser=webdriver.Chrome()
url='https://lajifenleiapp.com/'
browser.get(url)
input=browser.find_element_by_xpath('//*[@id="inputv"]')
input.send_keys(m)
button=browser.find_element_by_xpath('//*[@id="form"]/div/span')
button.click()
4.之后就是查找需要的信息了,代码如下,我做了信息的注释
result=browser.find_element_by_xpath('/html/body/div/div[3]/div/h1')#结果
jieshao=browser.find_element_by_xpath('/html/body/div/div[5]/div[1]')#垃圾介绍
jieshaos=browser.find_element_by_xpath('/html/body/div/div[5]/div[2]')
5.运行结果如下
6.最后就是使用pyinstaller打包成exe文件,可以让其他人都可以使用
首先需要下载这个库
pip install pyinstaller
然后 使用 pyinstaller -F 路径
就可以打包完成了
7.完整代码
from selenium import webdriver
m=input()
browser=webdriver.Chrome()
url='https://lajifenleiapp.com/'
browser.get(url)
input=browser.find_element_by_xpath('//*[@id="inputv"]')
input.send_keys(m)
button=browser.find_element_by_xpath('//*[@id="form"]/div/span')
button.click()
result=browser.find_element_by_xpath('/html/body/div/div[3]/div/h1')#结果
jieshao=browser.find_element_by_xpath('/html/body/div/div[5]/div[1]')#垃圾介绍
jieshaos=browser.find_element_by_xpath('/html/body/div/div[5]/div[2]')
print('结果:')
print(result.text)
print("垃圾介绍:")
print(jieshao.text)
print(jieshaos.text)
二:之后我使用了直接法,这个原理很简单,就是输入然后拼成一个url请求数据,代码如下
mport urllib .request
from lxml import etree
for i in range(0,100,1):
m=input()
mm = urllib.parse.quote(m)
url='https://lajifenleiapp.com/sk/{}'.format(mm)
r=urllib .request .urlopen(url)
html=etree.HTML(r.read().decode('utf-8'))
href=html.xpath('/html/body/div/div[3]/div/h1/span[3]/text()')
print("结果:")
print(" ".join(href))
hrefs=html.xpath('/html/body/div/div[5]/div[1]/h3/text()')
print("介绍:")
print(" ".join(hrefs))
hrefss=html.xpath('/html/body/div/div[5]/div[2]/text()')
print(" ".join(hrefss))
print("主要包括:")
hrefsss=html.xpath('/html/body/div/div[6]/div[2]/text()')
print(" ".join(hrefsss))
yaoqiu=html.xpath('/html/body/div/div[7]/ul//li/text()')
print("投放要求:")
print(" ".join(yaoqiu))
运行结果
总结:
虽然完成了我预想的功能,但是界面还是很简陋,我准备接下来使用tkinter这个GUI库来做一个好看的界面