QQ登录

只需要一步,快速开始

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

Python-网页爬虫与Sqlite3

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

自我介绍
我本名为我,那就是我
跳转到指定楼层
1#
发表于 2021-1-14 08:44 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  1. #!/usr/bin/python
  2. 7 u5 D/ c% o1 x# -*- coding: utf-8 -*-
  3. 6 p\" u. t( Z- f- b: n) m  g9 w. N  W% |, Y8 Z4 K  \) i
  4. import sqlite36 `- J* ~- K! e- w9 A& }9 \4 T4 X- x
  5. import requests
  6. 4 Z+ i# |  }0 nfrom bs4 import BeautifulSoup
  7. ' q$ J- X\" G& e( E: H1 P& M/ yfrom re import escape7 _+ ]/ Z6 R+ d4 [
  8. . g5 g2 ]$ B7 G3 Q0 V
  9. if __name__ == '__main__':7 v  @. e' K5 B9 l0 Z0 K
  10.     conn = sqlite3.connect('Python.db')3 n7 ^4 E9 B7 a% a' M
  11.     c = conn.cursor()
  12. + c6 K) ?\" `\" h+ c% a9 E    c.execute('''CREATE TABLE IF NOT EXISTS Python (
  13. \" l! E- G9 p9 F        Url VARCHAR,
  14. 0 X: d, H, \9 r; t0 U; a- |4 v        Title VARCHAR,) z$ ?/ n) }6 m7 Q8 j6 U
  15.         Author VARCHAR# y7 I4 i' `) d8 V+ K4 C- O
  16.     )''')
  17. ( n0 o\" l0 V0 p! u3 N    conn.commit()  v9 m5 ~7 S/ m) t) R6 u' E

  18. 8 o  y+ l& A2 d( l$ a/ y# u7 s0 ^    # --------------------Split Line--------------------1 W+ Y) e& c( }. J$ V. i, U
  19.     headers = {
  20. , C8 k- x+ C4 D6 W/ ?! @; Y) C2 o        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 Safari/537.36"5 ], ~% c' I3 Q$ k7 ~4 s) @' V0 o) e
  21.     }
  22. 7 \  M- n& c; d' J( S; e' K
  23. + z/ o/ b& r% ]1 {    for i in range(1, 1046):6 H: ]& m. g4 Z9 U3 u( H. O/ d
  24.         url = "http://xxx/index_%s.html" % str(i)& V$ ^' P  `( S1 }
  25.         req = requests.get(url=url, headers=headers)
  26. 6 y2 J1 ~  F$ b1 [6 N        req.encoding = "utf-8"# i- B( {) d, W
  27.         html = BeautifulSoup(req.text, "lxml")\" d; H4 N7 t0 J  y$ t3 T8 N# {

  28. + h  k/ y+ S& N, H; t8 M2 V        # --------------------Split Line--------------------
  29. 8 }6 V8 _# r5 ^0 Z4 [3 {        for div in html.find_all('div', class_='loop'):
  30. 1 ~* \% z; l0 y4 @\" ~. R            content_body = div.select('h2 > a')[0]
  31. , q- J; ~& \; \9 P, f            content_infor = div.select('.content_infor > span:nth-child(3)')[0]
  32. % J; P  `0 Y+ l6 A: v/ a2 Z/ \* D- z7 W/ |) e. I/ w: {% V
  33.             # --------------------Split Line--------------------
  34. 8 f4 A: s3 u+ W, A            cursor = c.execute(
  35. % N; ?7 `. U0 W3 o0 i                "SELECT COUNT(*) FROM Python WHERE Url = '%s'" % ("http://xxx" + content_body.get('href'))). C6 |9 v4 c3 H- \0 K1 f
  36.             len = 0\" S; ]2 @7 ]: {6 N. g5 t
  37.             for row in cursor:' z& X8 V( A: D' p/ ?
  38.                 len = row[0]
  39. ! r( H5 U! W: W1 A7 Y; ^            if len > 0:8 Q. d/ H\" c1 c/ _! O- o! R
  40.                 continue
  41. - e! ~+ V6 q1 d% ~3 A\" T! ^9 R. N
  42. + a$ t+ |\" W( {; ?            # --------------------Split Line--------------------! b2 ^- v. Z\" j; F* D( J# _
  43.             c.execute('INSERT INTO Python( Url, Title, Author) VALUES ( "%s", "%s", "%s")' % (4 P3 {0 c* F6 G0 B4 ~; m' k
  44.                 "http://xxx" + content_body.get('href'),
  45. ; @, o/ [- G% |* }                escape(content_body.get('title').replace("\"", "\"\"")),2 Q9 O! G9 N& J' a4 k
  46.                 content_infor.text.replace('xxx: ', '')))0 i0 t4 f$ Q( y; G\" z' M
  47. 4 n% ]( p' n, A  \
  48.         conn.commit()6 b& P- s# s2 @( k
  49.         print("第%s页" % str(i))
  50. 3 V6 }8 Z8 @! a7 A4 u\" \3 \: I\" M5 B5 X) m
  51.     # --------------------Split Line--------------------: ^* U* }/ ]1 y/ g) c& d
  52.     conn.close()
  53. . {+ \! w2 f\" I  w/ i; ]+ y

' G: i( f# q5 _! ]' Z0 K% t8 e/ v- `% F8 j$ n( @
转发自派生社区
Python交流群:1047602540
/ T- K& x& j0 W: |; d, u
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-20 08:06 , Processed in 0.433755 second(s), 49 queries .

回顶部