QQ登录

只需要一步,快速开始

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

Python-网页爬虫与Sqlite3

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

自我介绍
我本名为我,那就是我
跳转到指定楼层
1#
发表于 2021-1-14 08:44 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  1. #!/usr/bin/python
  2. 3 F# M& V8 @9 ?) B! `: q# -*- coding: utf-8 -*-. x+ ~, W+ q/ M  o9 d2 u! t2 Y8 a5 y

  3. * q5 P* t: x% n3 ?, Jimport sqlite3
  4. 7 C! x; O& \8 P6 {, Q! aimport requests* Y. P* i3 q' P
  5. from bs4 import BeautifulSoup
  6. 9 H. L( I+ _7 yfrom re import escape
  7. / ^: J* {$ L% M! h+ x$ j5 r; q/ U2 ?) F' U: N
  8. if __name__ == '__main__':
  9. / `$ p/ m& V2 o: }9 ]. J    conn = sqlite3.connect('Python.db')
  10. . _7 B2 P0 E& X7 e0 k' O    c = conn.cursor()- n1 H! a; E( j0 T& k* E$ h
  11.     c.execute('''CREATE TABLE IF NOT EXISTS Python (
  12. - E2 j3 |) l3 D' `) L! x        Url VARCHAR,/ B. L; G2 U' i
  13.         Title VARCHAR,
  14. ' g2 x' X+ Q# I0 d$ S1 {        Author VARCHAR
  15. : G. V6 `5 x2 h3 x' P4 c. ?\" g    )''')
  16. 0 W5 n2 X+ r: s4 L9 l& n    conn.commit()
  17. ' j2 q3 Z# }* x0 _7 w0 z. _
  18. ! Y7 d. A. Z# G- S& M7 o\" }2 B    # --------------------Split Line--------------------
  19. / \7 u; S/ l# n0 c) w8 S; j    headers = {
  20. ) D4 V9 ~. K# w4 P5 N6 _1 u        "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. 2 N. F9 O+ I3 E. R: Y    }
  22. : [  O+ a, k! c$ w& w
  23. 4 e. P8 [$ i0 ?\" i1 G& C    for i in range(1, 1046):
  24. 9 c  c7 l0 j6 Y0 h4 P        url = "http://xxx/index_%s.html" % str(i)
  25. $ Z$ I5 B. B. y$ ?\" V        req = requests.get(url=url, headers=headers)5 {\" L  }' [3 @% k9 T# u4 j9 y5 _
  26.         req.encoding = "utf-8"2 J9 d) ^2 @9 s3 s9 Z
  27.         html = BeautifulSoup(req.text, "lxml")! @: h- x3 q7 x0 A) G3 T5 Q

  28. + ~. ~% @, d3 b$ n0 U8 M\" x' Q        # --------------------Split Line--------------------
  29. ' s+ Y( d# K8 _6 Z- W& {3 T        for div in html.find_all('div', class_='loop'):8 e4 c\" \' q7 G: R8 `
  30.             content_body = div.select('h2 > a')[0]
  31. 0 \% k+ M- O! G/ w            content_infor = div.select('.content_infor > span:nth-child(3)')[0], L& T9 R1 L5 A2 c/ w% Q
  32. + `1 ~* d, @3 G2 t; K, Q  F
  33.             # --------------------Split Line--------------------
  34. ! s' r- G  p! ^; e/ I; n; h5 p            cursor = c.execute(  {1 z8 r& F! I1 U. A6 N# W( R
  35.                 "SELECT COUNT(*) FROM Python WHERE Url = '%s'" % ("http://xxx" + content_body.get('href')))/ ]0 K, Q3 |6 ?, v0 z
  36.             len = 0
  37. ; u8 f0 B& X# D+ L4 t            for row in cursor:5 C) S& C( q$ D  X1 J, o
  38.                 len = row[0]7 ~5 S4 T\" `, }; t6 B7 L
  39.             if len > 0:# S6 O. C) }2 h* y' L
  40.                 continue
  41. - E+ ^$ a7 s. ?; e/ h& K/ k+ x
  42. - Z2 a3 x, s) V9 K0 Q; K            # --------------------Split Line--------------------
  43. / J5 M0 ?1 Q$ |            c.execute('INSERT INTO Python( Url, Title, Author) VALUES ( "%s", "%s", "%s")' % (
  44. 3 C. j% O6 w  L9 Q2 Z+ S                "http://xxx" + content_body.get('href'),
  45.   M0 e; D4 n7 g% z% N6 J\" a                escape(content_body.get('title').replace("\"", "\"\"")),3 ]+ [' @4 }$ t( x\" [
  46.                 content_infor.text.replace('xxx: ', '')))& k4 R5 w' b; m; _' r  l

  47. $ u8 p$ l4 m+ u        conn.commit()- R. [) H/ j. Z: k2 [2 f1 f
  48.         print("第%s页" % str(i))2 `7 {8 Q. s3 @/ M9 i' w* k

  49. , Q  Q5 ^3 w8 U\" K! ~3 |$ U2 o    # --------------------Split Line--------------------; j$ j( e) t& U( n9 K
  50.     conn.close()
  51. ) D- \* ?; n$ E: ^  c  i

3 C+ {4 Q( b0 M$ D& v* }* D6 c5 w$ ~' _- j# ~2 I7 s4 U
转发自派生社区
Python交流群:1047602540
0 ]- D) ?# V% q7 K2 O  X0 H" o# N, W
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-4-21 04:14 , Processed in 0.337063 second(s), 50 queries .

回顶部