QQ登录

只需要一步,快速开始

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

Python-网页爬虫与Sqlite3

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

自我介绍
我本名为我,那就是我
跳转到指定楼层
1#
发表于 2021-1-14 08:44 |只看该作者 |正序浏览
|招呼Ta 关注Ta
  1. #!/usr/bin/python$ Q0 _: p+ x% K8 B% y& \/ l4 R& A
  2. # -*- coding: utf-8 -*-
  3. ! G5 d) v4 |  A$ R  a$ c8 Z+ i$ Q8 D7 Q7 `6 ?
  4. import sqlite31 w' {) Q. ~; _  Z
  5. import requests1 [\" p: Q3 O0 W. @# g
  6. from bs4 import BeautifulSoup
  7. . p' O& y2 x$ ]5 Ufrom re import escape9 u, z9 }' N8 B3 P
  8. ( L4 n6 W6 t9 Y: [+ u
  9. if __name__ == '__main__':4 }* m1 ]( K# s5 F
  10.     conn = sqlite3.connect('Python.db')\" @- V0 p! {$ R) c1 Q
  11.     c = conn.cursor(). c* M- ^2 C+ x: @  [
  12.     c.execute('''CREATE TABLE IF NOT EXISTS Python (\" u/ Y* u0 @* _6 `% r' ^9 C) N
  13.         Url VARCHAR,5 w& S7 e\" c8 q% ^. g. m: R! v0 O
  14.         Title VARCHAR,# h2 R4 A; i4 J+ ?% r2 s
  15.         Author VARCHAR8 \( f* a; {  X$ P* ~- ^3 h
  16.     )''')
  17. ) Y* D( q5 K- |; S- C    conn.commit()
  18. , ]$ e9 H: L, f
  19. / j1 z) R$ c' ]5 _. R7 T\" v; n    # --------------------Split Line--------------------
  20. + V1 O# ]9 x6 Z1 y' l  J0 O- M    headers = {  W0 M- [' a, y1 ^& {/ J
  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. ! X\" J6 z! L; L) ?$ n* q; g9 |. z    }% w: o' i( S6 E: L* d
  23. ; H% e9 ~  l/ `9 B/ \6 Z' Y5 P
  24.     for i in range(1, 1046):
  25. 6 f- ^/ [/ D9 }1 d/ F2 X1 q( T        url = "http://xxx/index_%s.html" % str(i)
  26. , A! W/ H# f# f9 M$ V( }1 W9 i        req = requests.get(url=url, headers=headers)1 J+ c\" Q( U% _  m/ ?6 G
  27.         req.encoding = "utf-8"
  28. 1 ]: S5 I8 K2 i/ z3 ?: q\" U        html = BeautifulSoup(req.text, "lxml")
  29. % q, f# |9 O) G2 b1 w6 v& j+ x
  30. & i( O, w/ a+ ~\" e\" f        # --------------------Split Line--------------------
  31. 6 b. g# w- a# o! J  F% b! B        for div in html.find_all('div', class_='loop'):
  32. ; G( t6 L' k. J6 C            content_body = div.select('h2 > a')[0]
  33. ' t. F5 w6 a5 w1 q\" ?            content_infor = div.select('.content_infor > span:nth-child(3)')[0]0 c3 O5 i6 C) u; \  y- _- T8 j  n! B
  34. 3 F1 S4 @7 h6 F
  35.             # --------------------Split Line--------------------
  36. # Y$ {6 W5 Q# x; m5 g7 Z5 T            cursor = c.execute(5 Y+ c+ D# N7 z+ A% S
  37.                 "SELECT COUNT(*) FROM Python WHERE Url = '%s'" % ("http://xxx" + content_body.get('href')))
  38. 8 {0 b0 N/ o- F/ Q' G) N9 O            len = 0  Z  z6 U9 y- D' T+ p
  39.             for row in cursor:; S\" H5 {+ z1 f9 d! D\" w2 O: `& Z
  40.                 len = row[0]; y0 ^. I, p% V. d1 n8 d: x3 v
  41.             if len > 0:7 g6 [. F. _\" M) u* k8 P6 ]
  42.                 continue
  43. * z- F2 s1 v' ~# x4 @+ k( R! T
  44. \" K+ ~) \3 z( N+ m7 V, q            # --------------------Split Line--------------------
  45. 4 C4 [5 R# h4 S. O, ?            c.execute('INSERT INTO Python( Url, Title, Author) VALUES ( "%s", "%s", "%s")' % (
  46. \" q. Y( l- O4 ^$ L' e* p                "http://xxx" + content_body.get('href'),
  47. + {2 I\" F7 J5 c0 Y  S+ A                escape(content_body.get('title').replace("\"", "\"\"")),9 {3 n4 {, X/ X
  48.                 content_infor.text.replace('xxx: ', '')))1 Q- I! q7 {5 L. ?\" H9 Y2 d

  49. 1 P! h2 D2 m7 q1 R3 D0 x  U        conn.commit()& B1 s4 _* ^9 ]9 X( C& b; K6 t: T0 O2 D
  50.         print("第%s页" % str(i))- N- Z; t$ M4 Y) [

  51. $ p% n, l8 p* i+ i- x3 q    # --------------------Split Line--------------------& t! z8 t4 a, D+ t5 V
  52.     conn.close()
  53. : [/ P  `+ \2 b. g& m5 q# q

! c. n. e- T7 `
) \% |- B' s, V7 L* d- I* m
转发自派生社区
Python交流群:1047602540

( ]; N9 K: }- c6 b2 [! c: x5 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-7-18 13:51 , Processed in 0.690534 second(s), 50 queries .

回顶部