代码仅仅是例子,主要是方法的使用,因为是韩国论坛需要代理才能访问。欢迎留言讨论

import threading
import requests
from bs4 import BeautifulSoup
import base64
import sqlite3
import re
import datetime
from multiprocessing.dummy import Pool as ThreadPool
# import _thread
conn = sqlite3.connect('reptile.db')     #连接数据库
# 连接到SQLite数据库
c = conn.cursor()
# 目标网站 URL
# url = 'https://www.ppomppu.co.kr/zboard/zboard.php?id=freeboard&hotlist_flag=999'#爬取整页文章及内容
def getBBS(page):  url = 'https://www.ppomppu.co.kr/zboard/zboard.php?id=freeboard&hotlist_flag=999&page='+str(page)# 发送请求并解析 HTMLresponse = requests.get(url)soup = BeautifulSoup(response.content, 'html.parser')# 提取文章信息articles = []for article in soup.select('.list0,.list1'):author = article.select_one('.list_name').text.strip()title = article.select_one('.list_title').text.strip()uid=article.find_all('td',class_='eng list_vspace')[0].text.strip()timestamp = article.find_all('td',class_='eng list_vspace')[1].get('title')content_url ='https://www.ppomppu.co.kr/zboard/'+article.find_all('a')[1].get('href')content_response = requests.get(content_url)content_soup = BeautifulSoup(content_response.content, 'html.parser')date=content_soup.find('div',class_='sub-top-text-box').get_text()print(date)pattern = r"\d{4}-\d{2}-\d{2} \d{2}:\d{2}"match = re.search(pattern, date)if match:print("匹配到的时间为:", match.group(0))date=match.group(0)else:print("未找到匹配的时间")# 获取当前时间now = datetime.datetime.now()date=nowcontent_element = content_soup.find_all('table',class_='pic_bg')[2]if content_element:content = content_element.text.strip()images = content_element.find_all('img')image_data = []for image in images:image_url = image['src']image_response =requests.get('https:'+image_url)#    image_data.append(base64.b64encode(image_response.content).decode())# 将 img 标签的 src 属性替换成 base64 编码的内容base64_data = base64.b64encode(image_response.content).decode()image["src"] = "data:image/png;base64," + base64_dataprint(content_element)#    content_element=content_element.replace(image_url,image["src"])#    print(content_element)#    articles.append({#     'author': author,#     'title': title,#     'timestamp': timestamp,#     'content': content,#     'images': image_data# })print('作者:', author)print('标题:', title)print('发布时间:', timestamp)  content=str(content_element)# 插入一条记录c.execute("INSERT OR IGNORE INTO getData (dataID,textID,dataName,textUrl,textTitle,textTime,textBody,textState,textName,regTime,EncodingStr) VALUES(:dataID,:textID,:dataName,:textUrl,:title,:textTime,:textBody,:textState,:author,:regTime,:EncodingStr)",{"dataID":'1',"textID":uid,"dataName":'ppomppu','textUrl':content_url,'title':title,'textTime':date,'textBody':content,'textState':'1','author':author,'regTime':timestamp,'EncodingStr':'EUC-KR'})
# 提交当前事务,保存数据conn.commit()print(articles)# 开始
def startUp():# urls = ['https://www.ppomppu.co.kr/zboard/zboard.php?id=freeboard&hotlist_flag=999&page={}'.format(i) for i in range(1, 6575)]# 设置线程数量num_threads = 10# 设置要爬取的页数pages = range(1, 10000)# 创建线程池pool = ThreadPool(num_threads)# 在线程池中运行函数results = pool.map(getBBS, pages)# 关闭线程池pool.close()pool.join()if __name__ == '__main__':  startUp()# 打印文章信息
# def print():
#   for article in articles:
#     print('作者:', article['author'])
#     print('标题:', article['title'])
#     print('发布时间:', article['timestamp'])
#     print('文章内容:', article['content'])
#     print('文章图片:', article['images'])
#     print('------------------------')
# 关闭数据库连接
conn.close()

【python】使用requests多线程爬取论坛文章并存储在sqlite中相关推荐

  1. Python的Requests来爬取今日头条的图片和文章

    Python的Requests来爬取今日头条的图片和文章并且存入mongo config.py MONGO_HOST = 'localhost' MONGO_PORT = 27017 MONGO_DB ...

  2. python爬虫 requests+bs4爬取猫眼电影 傻瓜版教程

    python爬虫 requests+bs4爬取猫眼电影 傻瓜版教程 前言 一丶整体思路 二丶遇到的问题 三丶分析URL 四丶解析页面 五丶写入文件 六丶完整代码 七丶最后 前言 大家好我是墨绿 头顶总 ...

  3. python使用requests库爬取淘宝指定商品信息

    python使用requests库爬取淘宝指定商品信息 在搜索栏中输入商品 通过F12开发者工具抓包我们知道了商品信息的API,同时发现了商品数据都以json字符串的形式存储在返回的html内 解析u ...

  4. python多线程爬取多个网址_【Python爬虫】多线程爬取斗图网站(皮皮虾,我们上车)...

    原标题:[Python爬虫]多线程爬取斗图网站(皮皮虾,我们上车) 斗图我不怕 没有斗图库的程序猿是无助,每次在群里斗图都以惨败而告终,为了能让自己在斗图界立于不败之地,特意去网上爬取了斗图包.在这里 ...

  5. 【Python 爬虫】多线程爬取

    文章目录 前言 一.多进程库(multiprocessing) 二.多线程爬虫 三.案例实操 四.案例解析 1.获取网页内容 2.获取每一章链接 3.获取每一章的正文并返回章节名和正文 4.将每一章保 ...

  6. 使用python的requests库爬取微信公众号文章中的图片

    1.首先导入我们需要的库: import requests from lxml import etree import os 以某篇文章为例,复制该文章连接: 2.使用requests库获取该网址的响 ...

  7. python使用requests+xpath爬取小说并下载

    这个爬虫只是选定热门小说,不支持自选搜索下载,日后会补充并改进. 选定小说网址: 笔趣阁 爬取: 需要导入的包 import requests from lxml import etree impor ...

  8. 【Python成长之路】Python爬虫 --requests库爬取网站乱码(\xe4\xb8\xb0\xe5\xa)的解决方法【华为云分享】

    [写在前面] 在用requests库对自己的CSDN个人博客(https://blog.csdn.net/yuzipeng)进行爬取时,发现乱码报错(\xe4\xb8\xb0\xe5\xaf\x8c\ ...

  9. 【Python成长之路】Python爬虫 --requests库爬取网站乱码(\xe4\xb8\xb0\xe5\xaf\x8c\xe7\x9)的解决方法

    [写在前面] 在用requests库对自己的CSDN个人博客(https://blog.csdn.net/yuzipeng)进行爬取时,发现乱码报错(\xe4\xb8\xb0\xe5\xaf\x8c\ ...

最新文章

  1. Nacos 1.1.4 发布,业界率先支持 Istio MCP 协议
  2. The import javax.servlet cannot be resolved
  3. MAX3222/MAX3232/ MAX3237/MAX3241/串口通信中文_技术文档
  4. mongoclient php扩展,lnmp安装mongo扩展后,在实例化mongoClient()时出错
  5. 小心这 10 个云计算错误!
  6. mysql 导入,导出数据库
  7. python调用文件可以干嘛_Python完成读取并保存文件类的详细介绍
  8. java下载execl优化_Java内存优化之POI Excel(二)
  9. jdk下载和安装教程
  10. Pr:视频效果( 2020 版)速览
  11. 这几个好用的简单流程图模板,你可不能错过
  12. Facebook自动化测试札记
  13. SiteGround主机和HostGator哪个好?(权威技术性分析)2022最新对比
  14. 共享储物柜app开发方案
  15. 基于STC15系列单片机课程中讲到的汇编指令(一)
  16. 苹果神武4手游等待服务器响应,ios回合制手游《神武4》如何在登高探宝中快速拿到奖励?...
  17. [应用方案]基于DP5020点阵屏的显示驱动
  18. 什么是NFS?NFS挂载
  19. ms office word2013教程 - 文字处理之邮件合并
  20. eclipse中创建spring boot项目

热门文章

  1. 手机连接电脑win10热点,手机显示无IP分配
  2. 责任链模式在王者荣耀中的应用
  3. 将一组数据按每组n个元素 进行分组
  4. Word2019 自定义设置页码
  5. @DateFormat与@JsonFormat
  6. mysql 数据库查看锁表_mysql解锁表(如何查看数据库锁表)
  7. “懒”人的居家必备神器
  8. 网络诊断“您可能需要与该网络的Internet服务提供商ISP签署协议才能获得访问Internet的权限
  9. YUV的plannar,packet及semi-planar格式及RGB
  10. [转帖] Kubernetes如何使用ReplicationController、Replica Set、Deployment管理Pod ----文章很好 但是还没具体操作实践 也还没记住....