QQ登录

只需要一步,快速开始

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

Python-网页爬虫与Sqlite3

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

自我介绍
我本名为我,那就是我
跳转到指定楼层
1#
发表于 2021-1-14 08:44 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  1. #!/usr/bin/python
  2. . W  n  c1 J( b9 j& u) m# -*- coding: utf-8 -*-
  3. 4 C& T- @  n& s7 `3 k\" f\" U: ~. H\" h4 l: |
  4. import sqlite3
  5. ( X1 z& O. j  fimport requests# u5 H( {3 c/ M9 b+ X\" N
  6. from bs4 import BeautifulSoup
  7. ' v7 A6 @\" B% Y8 R! d' hfrom re import escape
  8. ! S  y8 Z8 X9 x2 v* O4 ?. A  A! f% D& m5 I% S) i% D6 [\" l
  9. if __name__ == '__main__':- v5 ^! Y5 G2 x& ?+ a! K& ~8 u
  10.     conn = sqlite3.connect('Python.db')
  11. * x5 J; v3 t) u( ^    c = conn.cursor()
  12. . Q6 {! m5 c; x8 V; E' ?    c.execute('''CREATE TABLE IF NOT EXISTS Python (+ C/ K8 u/ A+ \* g
  13.         Url VARCHAR,
  14. % W( f  K' _/ s- \4 \) U$ {$ [3 A  ]+ A3 P        Title VARCHAR,
  15. ! ]2 g7 B* R& E; E- |: a/ s; q2 s        Author VARCHAR
  16. 1 {3 R- t0 U/ h. j4 r$ l1 ~6 k7 b    )''')( X# g0 @* B/ l& O  @2 z
  17.     conn.commit()
  18. ' y  S/ n6 W- y% x( q7 k' {7 C6 a/ k6 @0 e  x\" B( k8 W
  19.     # --------------------Split Line--------------------
  20. / _! \: B. y9 S+ v, F2 L# L/ C9 F    headers = {8 H% @% g$ B5 ^8 b
  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. ( f! Z4 u8 w8 r    }
  23. $ [9 d0 J8 H) H
  24. * {9 r: A) j# g( l    for i in range(1, 1046):
  25. ; p7 R% y1 u/ x* w        url = "http://xxx/index_%s.html" % str(i)0 p, g- W$ }) {8 z) P( @\" g
  26.         req = requests.get(url=url, headers=headers)
  27. 8 E\" l1 [/ h, U        req.encoding = "utf-8") z, ~) q' e! A3 n% c1 n
  28.         html = BeautifulSoup(req.text, "lxml")0 A. \! {6 t4 F- ?/ C! ~

  29. ) h3 M$ F9 N+ H) P; P0 a/ u3 V        # --------------------Split Line--------------------
  30. 8 I: Q. B9 ], X7 v. y3 e        for div in html.find_all('div', class_='loop'):
  31. ) p6 i7 Q5 p5 I/ x7 V) _; |            content_body = div.select('h2 > a')[0]
  32. $ h) Y. H$ a) g/ `! S7 _; }0 e2 a            content_infor = div.select('.content_infor > span:nth-child(3)')[0]
  33. 4 i& l9 w) @8 s3 t. w3 F
  34. ' Q9 I3 C. S( v% o0 U% X, {            # --------------------Split Line--------------------
  35. . Q) d, M& S2 }& ^5 r- {            cursor = c.execute(
  36. ( @5 j) b, n+ S\" d1 e                "SELECT COUNT(*) FROM Python WHERE Url = '%s'" % ("http://xxx" + content_body.get('href')))
  37. 7 W2 a: a9 Z1 l# T1 [1 \0 _            len = 0- u' \: l$ K( Q/ v
  38.             for row in cursor:' \  M9 h. c# j2 B# o- ^
  39.                 len = row[0]; ~' l' h1 B, {- A/ A: m3 M9 X
  40.             if len > 0:
  41. 8 a6 Y\" E6 ?4 ?# z                continue
  42. * f. }. [5 g/ g! }
  43. $ C, T5 u3 m# {4 z* d/ @+ o) @/ ^5 ?6 K            # --------------------Split Line--------------------
  44. ' D9 q' q/ X! k. }& ~7 \            c.execute('INSERT INTO Python( Url, Title, Author) VALUES ( "%s", "%s", "%s")' % (
  45. 1 G7 k9 e* b' S- ~* c  G0 W                "http://xxx" + content_body.get('href'),( h# q, }: j8 n2 B2 J( b\" y6 p
  46.                 escape(content_body.get('title').replace("\"", "\"\"")),) c9 H1 P' H/ Y4 G* a+ M
  47.                 content_infor.text.replace('xxx: ', '')))9 o- R& o: m  K- a, `

  48. : O+ p; ~) ?% @5 s$ _        conn.commit(): W6 ^& N: v( G, Z* C
  49.         print("第%s页" % str(i))\" G. A+ _. B) P( B0 a  \+ n/ }

  50. 1 e( w- N0 ]2 D. M/ F' `    # --------------------Split Line--------------------
  51. + L) b\" k' r. m! G% _    conn.close()( q3 ]. R/ L. B
0 }# j0 K  ~2 e. v% l9 e

- [4 W1 r. K' E) s, P
转发自派生社区
Python交流群:1047602540

( B4 W2 v) C% o1 `
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-7-18 07:25 , Processed in 0.502569 second(s), 50 queries .

回顶部