QQ登录

只需要一步,快速开始

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

Python-网页爬虫与Sqlite3

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

自我介绍
我本名为我,那就是我
跳转到指定楼层
1#
发表于 2021-1-14 08:44 |只看该作者 |正序浏览
|招呼Ta 关注Ta
  1. #!/usr/bin/python# o5 X, r) J% A: b/ f* d
  2. # -*- coding: utf-8 -*-' A\" @9 X- }$ i/ A' g* M\" N) K5 F: Z
  3. + P7 K4 g' b: U# @# O
  4. import sqlite3
  5. 2 o7 d$ @* i8 c. k! l- d6 Jimport requests
  6. 9 [- _2 Q5 U, u; Ifrom bs4 import BeautifulSoup+ f% M3 b2 E! h1 c' r
  7. from re import escape
  8. 0 C; g: l* k2 @8 h3 e  s- ~
  9. # f' X4 }3 I5 e/ Y) \& vif __name__ == '__main__':* y2 S' m; M3 `2 @6 Y5 q& s9 t
  10.     conn = sqlite3.connect('Python.db')
  11. 3 g' M. M* J* L6 a6 p, z9 s& x9 K    c = conn.cursor()  q\" W+ {, M2 T) @  p& t5 J\" @. q* P
  12.     c.execute('''CREATE TABLE IF NOT EXISTS Python (8 M6 ?  V7 S8 ]
  13.         Url VARCHAR,9 V* l1 Q+ S! \; U
  14.         Title VARCHAR,
  15. 2 R' v. F, Z9 S% j        Author VARCHAR
  16. . k1 c% ]1 `, u1 t0 s    )''')
  17. ; G1 M$ g# c' o. j( W! z. D    conn.commit()0 a4 \. `/ t+ K3 L1 x. w

  18. 3 u: \( Q) D4 y+ Y& o    # --------------------Split Line--------------------& j; g, ~\" {1 l1 c: [3 c
  19.     headers = {
  20. ) t, `! U, w, H7 ^  o6 t        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 Safari/537.36"
  21. 4 `4 r- y9 D; y7 j    }
  22. ! i, C0 U6 y) P7 H; g3 @' u/ b1 r: u$ M# ?. J7 s
  23.     for i in range(1, 1046):! ?, h4 L7 [+ a. v# u
  24.         url = "http://xxx/index_%s.html" % str(i)) d  b. Z% m' ^$ d% j: ^7 l# N! }
  25.         req = requests.get(url=url, headers=headers)
  26. . `  x/ r8 \0 F) v5 i$ |& H6 y        req.encoding = "utf-8"
  27. & t; V5 L% P7 ?) g3 U* h        html = BeautifulSoup(req.text, "lxml")
  28. $ X9 x1 }\" c. H  P& k# A% ]% w; P! `* Y$ P, ?! Y
  29.         # --------------------Split Line--------------------4 a' o+ i+ J' L$ v9 ~
  30.         for div in html.find_all('div', class_='loop'):
  31. 8 K( o9 `3 \; L            content_body = div.select('h2 > a')[0]3 y+ C/ n. A2 d. \8 ]
  32.             content_infor = div.select('.content_infor > span:nth-child(3)')[0]
  33. 2 l3 w& B' |& m\" r+ U: B/ w% N9 a0 s6 ~7 w; V
  34.             # --------------------Split Line--------------------. U- b/ R) S( P% ^\" L
  35.             cursor = c.execute(4 q7 Q/ q4 ^8 J+ g! C8 K
  36.                 "SELECT COUNT(*) FROM Python WHERE Url = '%s'" % ("http://xxx" + content_body.get('href')))$ @9 v\" V% Q3 \: E) |) F
  37.             len = 0' K$ {- A. T\" Z0 H& `) k
  38.             for row in cursor:# @) I6 _$ H) T4 x  X' V4 H
  39.                 len = row[0]9 i\" a* \4 }6 l+ h' c
  40.             if len > 0:' ^6 B  r, c7 z4 ]5 Q/ U& r
  41.                 continue
  42. 6 ^9 i0 v\" }, ]# f; x' z5 n, E5 o) ]) K: X$ C3 k5 S  Q
  43.             # --------------------Split Line--------------------
  44. + B6 @* O; T! \6 Q6 H            c.execute('INSERT INTO Python( Url, Title, Author) VALUES ( "%s", "%s", "%s")' % (
  45. 3 y  \; G$ n, h9 {$ A2 z! V( |                "http://xxx" + content_body.get('href'),
  46. . D* L- A- _, _* C- z; C& X0 E                escape(content_body.get('title').replace("\"", "\"\"")),' }: j/ l( n' {1 o3 E) D
  47.                 content_infor.text.replace('xxx: ', ''))); R3 r) N. X) w0 H1 {( o  H/ A! z
  48. + D4 c& z/ Q# E5 o1 v/ j. o5 Y1 M3 h
  49.         conn.commit()
  50. 8 }\" Y1 R3 ~8 w& y        print("第%s页" % str(i))* \5 ~4 h) P# p9 }* P4 Q% I0 Q  `
  51. ! p: j. R4 h: m! j  p  A. _% S
  52.     # --------------------Split Line--------------------
  53. 8 r; D1 ?% [# x2 \    conn.close()
  54. * l1 |/ {& t+ ?) S* L2 y

8 Q! x$ z/ f4 J# c: p: y5 z" ~
3 P& U! Z5 T! S# H9 s
转发自派生社区
Python交流群:1047602540

4 p7 i9 K2 }+ _' i
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, 2025-9-17 18:01 , Processed in 0.399521 second(s), 50 queries .

回顶部