QQ登录

只需要一步,快速开始

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

Python-网页爬虫与Sqlite3

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

自我介绍
我本名为我,那就是我
跳转到指定楼层
1#
发表于 2021-1-14 08:44 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  1. #!/usr/bin/python, U; Z1 p6 A( J( Y) m2 r1 f
  2. # -*- coding: utf-8 -*-# J# l( j. O; v\" w( P
  3. # d! S  g% I; L\" B' Y- y
  4. import sqlite3
  5.   f* F. ^; f- Qimport requests
  6. ; d: g' l4 i\" M* E& P: s8 y/ D# ffrom bs4 import BeautifulSoup  c. I3 c, M6 Q6 {! L( F7 P
  7. from re import escape
  8. 3 L+ E# ^$ U3 n, a6 ^
  9. * q$ C5 X/ N4 d( g; I: Xif __name__ == '__main__':
  10. 7 \, o' d5 h- R  B% l/ U    conn = sqlite3.connect('Python.db')
  11. \" l8 L! M, L0 A; f4 x    c = conn.cursor()
  12. ; C/ l7 p: _2 }0 f  \. g  a    c.execute('''CREATE TABLE IF NOT EXISTS Python (
  13. . m) Q' m/ a6 s        Url VARCHAR,. M& ^- x9 ?% {& I\" U: [
  14.         Title VARCHAR,
  15. 5 S8 R. _: E1 ]/ Y) p8 u        Author VARCHAR
  16. 8 B/ M  b. [# V5 v! N    )'''); F5 b1 F9 O1 D
  17.     conn.commit(): J; b  n: R2 K) C
  18. 4 G\" L\" ]3 G9 z& |\" C6 m
  19.     # --------------------Split Line--------------------
  20. - w$ e9 r1 w\" u( C    headers = {5 H( u' r4 Q1 b6 E( c7 {4 X
  21.         "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 Safari/537.36"
  22. \" O% a* @& F# @. @% s4 ?    }\" Y, _# E, v1 d/ L# w9 K# \' d; ~6 l
  23. 9 T  u  F+ v1 O+ ], Q) o! r! w
  24.     for i in range(1, 1046):
  25.   r$ ]' n% r8 F/ `$ T5 W) I+ i5 k        url = "http://xxx/index_%s.html" % str(i)
  26. % E! d9 d& T/ F2 ]+ C* @% H6 r        req = requests.get(url=url, headers=headers)0 m) J! q$ n2 S! D9 a
  27.         req.encoding = "utf-8") j) g. a0 O3 @
  28.         html = BeautifulSoup(req.text, "lxml")
  29. ( p# m6 c8 ?\" m+ x2 V
  30. ; _2 W4 f& N# Z7 g! r7 u        # --------------------Split Line--------------------/ Y3 B) @6 o4 a5 c3 ~/ h
  31.         for div in html.find_all('div', class_='loop'):
  32. ; l9 @0 l6 l0 Y            content_body = div.select('h2 > a')[0]
  33. , i2 B# U' X& @; O            content_infor = div.select('.content_infor > span:nth-child(3)')[0]: F/ I% }, r' m9 w0 ]5 V3 G
  34. % Z' X9 d  h# [0 F) B# H0 d
  35.             # --------------------Split Line--------------------
  36. $ b* c0 \2 V6 @: O* L. @0 A7 S# f            cursor = c.execute(
  37. - t1 x2 ?1 O  k- l\" N1 x, G                "SELECT COUNT(*) FROM Python WHERE Url = '%s'" % ("http://xxx" + content_body.get('href')))5 M6 O8 k6 i+ O% G2 [; _1 u
  38.             len = 02 n0 Z2 U- T( U( ]  C+ ~
  39.             for row in cursor:
  40. ( p) ~+ W5 D: ~# j                len = row[0]
  41. $ z- f1 X* c\" I' I2 b+ f' q6 ^7 D            if len > 0:; ]7 K0 w8 L& E: C
  42.                 continue
  43. % f8 ^\" K& J4 H- E1 ^2 A5 k3 D8 {: m5 G
  44.   V; I1 s0 A\" s6 i            # --------------------Split Line--------------------( x3 K4 x1 |$ t, Q& I\" C6 z
  45.             c.execute('INSERT INTO Python( Url, Title, Author) VALUES ( "%s", "%s", "%s")' % (\" U, d2 r( W- I: K  ?
  46.                 "http://xxx" + content_body.get('href'),0 d3 m+ |/ t/ l( c0 g\" O
  47.                 escape(content_body.get('title').replace("\"", "\"\"")),
  48. ! o8 P! }: v& i( r0 H                content_infor.text.replace('xxx: ', ''))), y9 G2 m. L; ~( [* b' L
  49. $ Y' V' W\" }1 k. S
  50.         conn.commit()/ v1 r: B/ J! o4 _1 g! D
  51.         print("第%s页" % str(i))
  52. + f- j# }\" ~, h. h+ f$ n; x! o  H& y* s/ T- T' V
  53.     # --------------------Split Line--------------------
  54. \" Y2 A3 |& ^# b# x: h# B4 `    conn.close()3 i  E- Y% k* L) w3 h: r6 B( g

) Q' d6 s7 m" a! u* X
9 q& X. f2 P* r8 F# G
转发自派生社区
Python交流群:1047602540

7 K: [' l' ^) J6 Y4 I, \' @' p
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-6-3 02:07 , Processed in 0.469460 second(s), 50 queries .

回顶部