本文图片以及文本仅供学习、交流使用,不做商业用途,如有问题请及时联系我们以作处理。
今天就教大家进行程序打包,写个简单的爬虫程序,爬取某东商品数据,并进行打包,让没有python环境的电脑也可以运行。
某东网址:
https://www.jd.com/
该网址是一个动态网站,我们打开开发者工具,进入Network→XHR界面,然后在搜索框输入任一商品,这样会加载出一条get请求的链接。
向下拉动网页,接着他会再次加载出一条链接,说明一个页面会更新两条链接;当点击下一页时,page会也会随之变动。
因为两条链接携带的参数不同以及后期要打包程序,所以需要适当修改,删除些不用的参数。
https://search.jd.com/s_new.php?qrst=1&suggest=1.his.0.0&stock=1&page=1&s=1
import pandas as pd
import requests
from lxml import etree
import time
创建DataFrame,构建headers,伪装请求头,防止被服务器识别。
df = pd.DataFrame()
headers = {
'cookie': '你的cookie',
'referer': 'https://search.jd.com/Search?keyword=%E6%AF%9B%E8%A1%A3&wq=%E6%AF%9B%E8%A1%A3&page=1&s=1&click=0',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36',
}
构建params参数以及爬取页数,这里使用了input()交互式,可以灵活的想要搜索的商品和想要爬取多少页,然后传入相关参数进行数据的进行请求。
keyword = input('请输入你要搜索的商品:')
params = {
'keyword': keyword,
'wd': keyword
}
s = 1
a = input('请输入你要爬取的页数:')
# int转换为数值类型
for page in range(1, int(a)):
print('===================正在爬取第{}页数据====================='.format(page))
url = f'https://search.jd.com/s_new.php?qrst=1&suggest=1.his.0.0&stock=1&page={page}&s={s}'
res_html = requests.get(url=url, headers=headers, params=params).text
当程序运行时他就会出现以下字段,然后输入相关内容即可:
数据的提取以前都讲解过,这里就不细讲了。
打包需要用到一个库-pyinstaller,安装只需要在终端输入以下命令:
pip install pyinstaller
pyinstaller打包命令有很多条,我比较常用下面这条:
pyinstaller -F py文件名称
他的使用也很简单,我们需要先在终端进入写好的程序所在的目录下。
接着复制上面的命令到终端,直接回车即可运行打包。
打包完成后会生成多个文件,而可执行 exe 程序就在dist文件下,我们直接双击即可运行程序,然后输入想要搜索的商品和想要爬取多少页。
1、写爬虫还是需要仔细分析网页,分析好网页是成功的一半了。
2、程序打包在工作中还是很常用的,打包好的程序可以在没有python环境下的电脑运行。
本文分享自 Python与Excel之交 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!