QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3779|回复: 0
打印 上一主题 下一主题

Python-网页爬虫与Sqlite3

[复制链接]
字体大小: 正常 放大
檀俾九        

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

自我介绍
我本名为我,那就是我
跳转到指定楼层
1#
发表于 2021-1-14 08:44 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  1. #!/usr/bin/python6 ?% u6 U3 c3 K# K7 p
  2. # -*- coding: utf-8 -*-; x2 e5 o3 j  P# a' _

  3. ( O; X4 n( M2 v; iimport sqlite3; d$ a7 T7 J, `- G% X8 X* ?2 ^3 e
  4. import requests* L$ T8 T0 L0 b( ]9 w5 e1 S1 H
  5. from bs4 import BeautifulSoup/ D& [, I4 {# ~
  6. from re import escape/ f, J0 f( |/ u0 t/ a% m8 z; P# K9 P

  7. 6 l6 ^# i9 ~: T  S. X- g. Gif __name__ == '__main__':
  8. . `4 h8 }# j4 b$ V& o) q; Q    conn = sqlite3.connect('Python.db')* S& v* i+ l  e( N* a8 R
  9.     c = conn.cursor()3 y( y) M1 C7 Z& S& Q+ q& o
  10.     c.execute('''CREATE TABLE IF NOT EXISTS Python (
  11. . @\" m; f: w8 |& o$ u        Url VARCHAR,
  12. 4 i4 Y1 S0 i8 R9 q% n* C! e        Title VARCHAR,, {1 d& V6 ~. d! ?( Q  g
  13.         Author VARCHAR
  14. / w& v' E* X+ X7 A( n& x* @: Z    )''')
  15. 5 s  T: [) v; E' R    conn.commit()
  16. ) p  K# A) ?\" U# L9 R, k# l% t- L  ^+ b  E9 m9 V7 @/ h
  17.     # --------------------Split Line--------------------
  18. 0 V+ ~% C7 f- L, C4 ]  ]3 H) g    headers = {
  19. - S0 z6 x5 P2 x        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 Safari/537.36"
  20. , |  B, y% ?4 p( n) R. n    }) t* p$ T6 I. C+ `6 P: K6 r1 F\" b
  21. % ?4 f# u3 c\" c5 x& R
  22.     for i in range(1, 1046):1 i! C$ p4 ]\" I\" M, h4 b  L: g
  23.         url = "http://xxx/index_%s.html" % str(i)  F( S. K$ R1 B2 l3 i- j
  24.         req = requests.get(url=url, headers=headers)
  25. # {7 ^! T* `1 @\" G        req.encoding = "utf-8"
  26. 7 z- c! i: p/ f; W: `+ v        html = BeautifulSoup(req.text, "lxml")% [4 l& y\" ^& t

  27. 4 E0 ~$ @( P: `2 {        # --------------------Split Line--------------------
  28. 6 r8 w+ N) P% u& E8 m        for div in html.find_all('div', class_='loop'):
  29. 8 Q) [8 s\" f$ R' @5 }. {$ H4 @9 u6 I5 n            content_body = div.select('h2 > a')[0]
  30. \" F* y6 Q3 z# s6 e5 p            content_infor = div.select('.content_infor > span:nth-child(3)')[0]) U5 I3 m4 e% N$ H0 ?3 o

  31. - {1 E& u& L* `\" _! C. B            # --------------------Split Line--------------------
  32. 1 F  @4 T- o5 G6 A! G            cursor = c.execute(( ]\" F5 [; W2 I  K
  33.                 "SELECT COUNT(*) FROM Python WHERE Url = '%s'" % ("http://xxx" + content_body.get('href')))5 ]! ^; s& K; U) O; B% E) K: V0 a
  34.             len = 0% g  o. ]2 [) u& ]7 W  f
  35.             for row in cursor:
  36. + s4 e) x, p. Z  B! E                len = row[0]# o\" H- w$ w0 F  n
  37.             if len > 0:
  38. # p, ^, {# v& e; u% V6 Z                continue
  39. - K3 n9 M, c( M5 R* U! C* x/ }# M$ y  S0 P
  40.             # --------------------Split Line--------------------. c( v/ k& @5 R7 q! T' o! S
  41.             c.execute('INSERT INTO Python( Url, Title, Author) VALUES ( "%s", "%s", "%s")' % (
  42. , w# m2 \0 D9 g                "http://xxx" + content_body.get('href'),. q+ |8 ^  a2 u8 Q3 y\" Q
  43.                 escape(content_body.get('title').replace("\"", "\"\"")),
  44. ' V* P- l3 T# I1 r\" c0 l                content_infor.text.replace('xxx: ', '')))
  45. ( D: v+ I  y8 r  L2 Q0 f1 S
  46. 1 w) j  k  A2 h4 |2 ?        conn.commit()- _( S% w) K& E8 r  T
  47.         print("第%s页" % str(i)). _3 j9 }3 p) R8 K8 X, e1 v
  48. ! ^4 J8 w) @1 @; l! s\" G4 C8 O! _+ o7 M# c
  49.     # --------------------Split Line--------------------
  50. 5 I  X: v% X! p7 n) Q- x/ @  {    conn.close()
  51. 8 h' s  Q% A0 ^. `\" ^4 z
! j* C5 y/ a; m
. V+ k% \" t. b) J5 F/ A6 n* P
转发自派生社区
Python交流群:1047602540
% N; c" v, K3 F' H9 T- B4 [" _) c
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-4-18 23:00 , Processed in 0.414639 second(s), 50 queries .

回顶部