记录一次简单的爬虫学习

以下是一个简单的的爬虫代码,以及简单封装的步骤,本文旨在学习,无其他因素。

import asyncio
import requests
from bs4 import BeautifulSoup
from fake_useragent import UserAgent
import pandas as pd
import time
import random
import os
import json
from requests_html import HTMLSession
from pyppeteer import launch

读取代理IP配置文件

with open('proxies.json') as f:
    proxies = json.load(f)

用户登录信息(此处仅为示例,实际应从安全的地方获取)

login_info = {
    'jd': {
        'username': 'your_jd_username',
        'password': 'your_jd_password',
    },
    'taobao': {
        'username': 'your_taobao_username',
        'password': 'your_taobao_password',
    },
}

随机延迟函数

def random_delay(min_delay, max_delay):
    time.sleep(random.uniform(min_delay, max_delay))

使用session管理cookies

session = HTMLSession()

设置代理IP

def set_proxy(proxy):
    session.proxies.update({'http': proxy, 'https': proxy})

模拟登录方法(此处仅为示例,实际需根据登录页面结构实现)

async def login(platform, login_page_url, credentials):
    browser = await launch(headless=True)
    page = await browser.newPage()
    await page.goto(login_page_url)
填写用户名和密码,处理验证码(此处为占位符,实际需要实现)
# ...
 await page.click('#submit_button')  # 提交登录按钮的ID

等待登陆成功页面出现

  await page.waitForNavigation()
    cookies = await page.cookies()
    await browser.close()

将cookies添加到session

for cookie in cookies:
session.cookies.set(cookie['name'],cookie['value'], domain=cookie['domain'])

抓取商品价格函数(此处仅为示例,实际需根据商品详情页结构实现)

async def crawl_product(platform, product_url):
    random_delay(1, 3)
    set_proxy(random.choice(proxies))
    response = session.get(product_url)
    response.html.render(sleep=2)  # 使用render以处理JS渲染的内容
    soup = BeautifulSoup(response.html.html, 'lxml')
    price_element = soup.select_one('#product_price')  # 请替换为实际价格元素的选择器
    price = price_element.text.strip() if price_element else 'N/A'
    return {'platform': platform, 'price': price}

主程序入口

async def main():
    products_urls = [
        ('jd', 'https://item.jd.com/某商品ID.html'),
        ('taobao', 'https://item.taobao.com/某商品ID.htm'),
    ]
    for platform, url in products_urls:
        await login(platform, get_login_url(platform), login_info[platform])
        product_data = await crawl_product(platform, url)
        print(product_data)
执行主程序
asyncio.run(main())

​将抓取的数据存入DataFrame并导出到Excel(此处在主程序完成后进行)

data = [...]  # 存储抓取到的所有产品数据
df = pd.DataFrame(data)
df.to_excel('products_prices.xlsx', index=False)

为了将以上代码编译成一个可执行的程序软件,可以将其封装在一个Python脚本中,并使用像pyinstaller这样的工具将Python脚本打包成独立可执行文件。首先,确保你的Python环境中已安装所有所需的库,包括requests, beautifulsoup4, pandas, fake-useragent, requests-html, pyppeteer等。

以下是将代码组织成一个Python脚本并使用pyinstaller打包的过程:

  1. 将上述代码保存到一个名为crawler.py的文件中。
  2. 安装pyinstaller:
  pip install pyinstaller
  1. 根据实际情况调整代码中的登录信息、URL和其他配置项。
  2. 在命令行中使用pyinstaller打包程序:
  pyinstaller --onefile crawler.py

这将会在dist目录下生成一个可执行文件(例如:crawler.exe for Windows或crawler for Linux/macOS)。
5. 运行生成的可执行文件即可执行爬虫程序。
需要注意的是,如果你计划将这个爬虫做成桌面应用程序,需要处理的问题可能还包括图形用户界面(GUI)、日志记录、错误处理、跨平台兼容性等。
另外,京东、淘宝等电商网站强烈反对未经授权的爬取行为,并采取了各种反爬措施,所以最好还是寻找官方API或者其他合法途径获取数据。同时,请务必遵守相关法律法规,尊重网站的隐私政策与条款。

  • 16
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: WinCC报表是一种工业自动化系统的软件应用程序,它可以对工业生产线进行数据采集、分析和报告,这在许多生产和制造行业中非常重要。在WinCC报表中,一小时记录一次是一种报表生成的时间间隔设置,即每隔一小时记录一次数据,并利用这些数据生成报告。这样可以在短时间内快速突出问题,识别和解决产线的问题,进而提高生产效率和产品质量。同时,一小时记录一次的设置可以让操作者及时了解产线生产情况,及时发现设备故障和异常情况,进一步提高设备的可靠性和稳定性。另外,一小时记录一次还可以提高报表的精度和准确性,每小时采集的大量数据可以更精密地分析产线的变化和趋势,识别潜在问题并及时解决。总之,设置一小时记录一次是WinCC报表功能非常重要的一部分,它体现了该软件应用程序在工业自动化控制和数据分析的优秀表现。 ### 回答2: WinCC 报表记录是 WinCC 软件的一个重要功能之一,可以记录各种生产工艺参数、数据和故障信息等,帮助生产企业进行生产过程监控和数据分析。其中,一小时记录一次是指 WinCC 报表记录数据的时间间隔为一小时。这种时间间隔的记录可以帮助企业精准掌握生产过程的动态变化,及时发现生产上的问题和异常,提高生产效率和质量。 在实际应用中,WinCC 报表记录一小时一次的时间间隔可以根据实际需要进行设置。一般来说,记录间隔越短,记录的数据越详细,但是也会占用更多的存储空间和计算资源。相反,记录间隔越长,记录的数据就越少,但是也会降低数据的精度和准确性。因此,在设置 WinCC 报表记录时间间隔时,需要结合实际生产需要进行综合考虑,找到最适合自己企业的记录间隔。 总之,WinCC 报表记录的时间间隔决定了记录的数据精度和准确性,选择适当的记录间隔可以更好地帮助企业进行生产监控和数据分析,提高生产效率和质量。 ### 回答3: WinCC报表的一小时记录一次是指,在使用WinCC报表功能进行数据记录的过程中,系统每隔一小时会收集和记录一次数据。这种记录方式可以保证数据的时效性和准确性,同时也可以保护数据不被意外删除或丢失。 WinCC报表是一个强大的数据记录和处理工具,可以帮助用户实时收集和监控不同的过程数据,并将其转化为易于理解和分析的信息。WinCC报表支持多种格式的数据输出,如PDF、Excel、Word等,用户可以根据自身需求选择合适的输出格式进行数据处理和分析。 WinCC报表的一小时记录一次可以保证数据的完整性和可靠性,同时也提高了数据处理和分析的效率和准确性。用户可以通过设置不同的运行参数和报表参数来实现个性化的数据记录和管理,从而更好地满足自身的需求和要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值