开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 30657|回复: 0
收起左侧

[源码分享] Python-网页爬虫与Sqlite3

[复制链接]

发表于 2020-12-14 14:51:00 | 显示全部楼层 |阅读模式   广东省广州市
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-

  3. import sqlite3
  4. import requests
  5. from bs4 import BeautifulSoup
  6. from re import escape

  7. if __name__ == '__main__':
  8.     conn = sqlite3.connect('Python.db')
  9.     c = conn.cursor()
  10.     c.execute('''CREATE TABLE IF NOT EXISTS Python (
  11.         Url VARCHAR,
  12.         Title VARCHAR,
  13.         Author VARCHAR
  14.     )''')
  15.     conn.commit()

  16.     # --------------------Split Line--------------------
  17.     headers = {
  18.         "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 Safari/537.36"
  19.     }

  20.     for i in range(1, 1046):
  21.         url = "http://xxx/index_%s.html" % str(i)
  22.         req = requests.get(url=url, headers=headers)
  23.         req.encoding = "utf-8"
  24.         html = BeautifulSoup(req.text, "lxml")

  25.         # --------------------Split Line--------------------
  26.         for div in html.find_all('div', class_='loop'):
  27.             content_body = div.select('h2 > a')[0]
  28.             content_infor = div.select('.content_infor > span:nth-child(3)')[0]

  29.             # --------------------Split Line--------------------
  30.             cursor = c.execute(
  31.                 "SELECT COUNT(*) FROM Python WHERE Url = '%s'" % ("http://xxx" + content_body.get('href')))
  32.             len = 0
  33.             for row in cursor:
  34.                 len = row[0]
  35.             if len > 0:
  36.                 continue

  37.             # --------------------Split Line--------------------
  38.             c.execute('INSERT INTO Python( Url, Title, Author) VALUES ( "%s", "%s", "%s")' % (
  39.                 "http://xxx" + content_body.get('href'),
  40.                 escape(content_body.get('title').replace(""", """")),
  41.                 content_infor.text.replace('xxx: ', '')))

  42.         conn.commit()
  43.         print("第%s页" % str(i))

  44.     # --------------------Split Line--------------------
  45.     conn.close()
复制代码

Python-网页爬虫与Sqlite3
https://bbs.266.la/forum.php?mod=viewthread&tid=540
(出处: 派生社区)

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表