QQ登录

只需要一步,快速开始

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

Python-网页爬虫与Sqlite3

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

自我介绍
我本名为我,那就是我
跳转到指定楼层
1#
发表于 2021-1-14 08:44 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  1. #!/usr/bin/python
  2. ) |; A6 C( o9 \0 \# -*- coding: utf-8 -*-
  3. 7 F  L5 m0 m9 x. {6 I) L9 S
  4. 1 t: z* p# U5 d$ aimport sqlite3
  5. ' I& u. J+ P+ S& T+ l$ ?import requests& ^8 I( v  q. {( }; J+ s
  6. from bs4 import BeautifulSoup
  7. . s9 Z3 ~+ R$ K0 kfrom re import escape
  8. 7 n0 y5 j! I5 `3 d4 |- J! f
  9. ) w: ]' ]. ?& N; {0 s3 @( Bif __name__ == '__main__':! ]* V, s; s9 K, g* D
  10.     conn = sqlite3.connect('Python.db')- }9 s  E7 T% \# Q- W) n
  11.     c = conn.cursor()% P# @0 U# @( W3 f. q
  12.     c.execute('''CREATE TABLE IF NOT EXISTS Python (6 _6 V+ G  G) B, H0 i  ^
  13.         Url VARCHAR,
  14. \" D+ X* S9 Q2 N' T        Title VARCHAR,
  15. ! k0 d. Y$ d\" `7 N# c: T, u        Author VARCHAR  n$ @: s/ ?2 E: {' Q: T3 _* s2 z
  16.     )''')
  17. 2 x( {/ h0 m/ g+ s\" k    conn.commit()
  18. % `. \' \, i( V5 \\" \5 B/ g8 |: [$ w. x2 q7 N4 O5 B
  19.     # --------------------Split Line--------------------
  20. ' [9 ?7 l1 F- T, L  v    headers = {5 W+ c  ]% j! {; 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. 6 E/ B$ L2 q, s6 t\" y& q. w    }
  23.   ]0 I% i* Y3 V3 }
  24. 5 U# L  N: q  U    for i in range(1, 1046):
  25. : l9 `% E\" q. ~9 u; i! S        url = "http://xxx/index_%s.html" % str(i)
  26.   ~# s0 O* F9 r, ~        req = requests.get(url=url, headers=headers)
  27. 9 A\" m6 N! K6 ~        req.encoding = "utf-8"  Z3 N' M) Y! l; y9 a
  28.         html = BeautifulSoup(req.text, "lxml")) z2 O& j! E9 V+ e0 ^
  29. 9 W6 A; k2 l8 E
  30.         # --------------------Split Line--------------------
  31. $ Y! {6 h$ [# ~3 ~2 z( D7 z        for div in html.find_all('div', class_='loop'):
  32. 0 n. O+ t0 m& v# J1 [& m9 q, U            content_body = div.select('h2 > a')[0]\" w- P+ a& J: ?& d1 b0 N2 d( q9 U
  33.             content_infor = div.select('.content_infor > span:nth-child(3)')[0]
  34. \" H  q' s- F3 p; a- s+ o0 `! {2 t3 S: c5 f& c
  35.             # --------------------Split Line--------------------
  36. 4 p5 {) M, o+ M            cursor = c.execute(
  37. : e0 L* g) T3 {' l% l9 Q4 B5 p8 }' {                "SELECT COUNT(*) FROM Python WHERE Url = '%s'" % ("http://xxx" + content_body.get('href')))4 Y0 B5 O% u9 s2 m# q
  38.             len = 0( e. A% E( g% ?5 z3 g8 q0 t9 B
  39.             for row in cursor:+ N9 U4 w1 R0 G, y* s( I5 I: m) x/ m
  40.                 len = row[0]6 P- E6 Q* \! e% X/ g$ ?
  41.             if len > 0:
  42. * E% f5 `0 x  K4 n' N3 r: F0 ]! v8 W                continue
  43. % ?, b( @, \0 |4 L9 P4 k: s  L4 o, T
  44.             # --------------------Split Line--------------------
  45. & \( j% k) ~; l3 Q2 A( L* }& W            c.execute('INSERT INTO Python( Url, Title, Author) VALUES ( "%s", "%s", "%s")' % (
  46. \" e5 C8 @0 M# u% u) J: a1 b/ g                "http://xxx" + content_body.get('href'),
  47. * K( q: _! G% ^0 b                escape(content_body.get('title').replace("\"", "\"\"")),
  48. 7 D9 m$ P* I/ d6 u5 p5 e/ @# J% G& |                content_infor.text.replace('xxx: ', '')))
  49. ! c, k7 h+ F- I) k; c* v0 i8 j
  50. 0 l) I1 b* z0 {) H- K9 U% f: |        conn.commit()
  51. ! \% j* A' r\" w9 w4 [  h        print("第%s页" % str(i))
  52. - R$ o( C! k7 ^, [. e5 d0 l+ a) b+ A% ]\" w1 ~
  53.     # --------------------Split Line--------------------. g7 q9 d' T: U3 T
  54.     conn.close()9 O3 ~; _( D1 \2 a; ~/ h9 ?

4 n  p) L: D! B. Q8 v( j- B- p" m2 F  ^! T
转发自派生社区
Python交流群:1047602540
" R8 u7 m* P0 @+ V$ P9 \1 V7 x' e
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-5 05:32 , Processed in 0.435832 second(s), 49 queries .

回顶部