爬取多个页面的数据

代码如下:

# -*- coding:utf8 -*-
#导入requests库,取别名res
import requests as res
#导入bs4包,取别名bs
from bs4 import BeautifulSoup as bs
#导入数据库驱动包
import MySQLdb
#声明页面从哪开始
j = 1
#循环遍历每个页面
while j <= 111:
    ##获取目标网站的网页
    #r代表将“”内的所有内容都默认为字符串
    path = r"http://www.bengyechina.com/product/enterprise_alllist_0_0_0_" + str(j) + ".html"
    #请求获取目标网页的html
    doc = res.get(path)
    #准备要爬取数据的列表
    names = []
    imgs = []
    #需要bs解析器去解析网页
    text = bs(doc.text,"html.parser")
    #从网页中查询类标签名为plist的下标为0的所有内容
    p1 = text.select(".plist")[0]
    #从类标签名为plist的下标为0的html中查询标签为li的内容中的img中所有内容
    img = text.select("li img")
    #声明变量作为下标,并初始化
    i = 0
    #---------------爬取数据结束---------------
    #---------------数据写入数据库----------------
    #连接mysql数据库中的pachong数据库
    #connect("主机名","用户
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一款可以复制别人开区网站的软件,输入地址即可下载整个网站源码程序,php asp 之类的动态程序无法下载。只能下载html htm 的静态页面文件! Teleport Ultra 所能做的,不仅仅是离线浏览某个网页,它可以从 Internet 的任何地方抓回你想要的任何文件。 它可以在你指定的时间自动登录到你指定的网站下载你指定的内容,你还可以用它来创建某个网站的完整的镜象,作为创建你自己的网站的参考。 可以简单快速保存你所喜欢的网页,是仿制网站的利器! 如果遇到屏蔽了浏览器保存网页,那么用网页整站下载器是一种很理想的办法。 使用网页整站下载器保存网页就简单多了,软件会自动保存所有的页面,但有时候由于软件功能过于强大,会导致很多不必要的代码、图片、js文件都一并保存到网页中 eleport Ultra 支持计划任务,定时到指定网站下载指定的内容,经由其保存的网站,保持源站点了的 CSS 样式、脚本功能,超链接也都替换为本地链接以方便浏览。 Teleport Ultra 实际就是一个网络蜘蛛(网络机器人),自动从网络撷取特定的资料。使用它可以在本地创建完整的网站镜像或副本,共有6种工作模式: 1) 在硬盘中创建一个可浏览的网站副本; 2) 复制一个网站,包括网站的目录结构; 3) 在一个网站中搜索指定的文件类型; 4) 从一个中心站点探测每一个链接的站点; 5) 在已知地址下载一个或多个文件; 6) 在一个网站中搜索指定的关键字。
可以使用多线程或者异步IO的方式来同时爬取多个页面数据。 使用多线程的方式,可以使用Python标准库中的`threading`模块。具体步骤如下: 1. 定义一个函数,用于爬取单个页面数据。 2. 创建多个线程,每个线程从一个URL列表中获取一个URL,然后调用爬取函数进行爬取。 3. 使用`join()`方法等待所有线程执行完毕。 示例代码: ```python import threading import requests def get_data(url): # 爬取数据的函数 response = requests.get(url) data = response.json() return data urls = ['https://example.com/page1', 'https://example.com/page2', 'https://example.com/page3'] results = [] def worker(): # 线程函数 while True: try: url = urls.pop(0) except IndexError: # 如果URL列表为空,则退出线程 break else: result = get_data(url) results.append(result) threads = [] for i in range(3): t = threading.Thread(target=worker) threads.append(t) t.start() for t in threads: t.join() print(results) ``` 使用异步IO的方式,可以使用Python标准库中的`asyncio`模块。具体步骤如下: 1. 定义一个异步函数,用于爬取单个页面数据。 2. 使用`asyncio.gather()`函数同时执行多个异步函数,并等待所有函数执行完毕。 示例代码: ```python import asyncio import aiohttp async def get_data(url): # 爬取数据的异步函数 async with aiohttp.ClientSession() as session: async with session.get(url) as response: data = await response.json() return data urls = ['https://example.com/page1', 'https://example.com/page2', 'https://example.com/page3'] loop = asyncio.get_event_loop() tasks = [get_data(url) for url in urls] results = loop.run_until_complete(asyncio.gather(*tasks)) print(results) ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值