查看: 193|回复: 0

[其他] python简单爬虫以及相关数据库操作源码

[复制链接]

158

主题

158

帖子

489

积分

中级会员

Rank: 3Rank: 3

积分
489
发表于 2019-3-13 15:16:47 | 显示全部楼层 |阅读模式
这次来点正常的吧,爬一个负能量的网站,网站只采取了一种反扒措施,随机标签,那我就直接亮代码吧。,数据库相关字段采取了唯一约束,相同的插不进去

python简单爬虫以及相关数据库操作源码

python简单爬虫以及相关数据库操作源码

  1. # -*- coding: utf-8 -*-
  2. # !/usr/bin/python
  3.  
  4.  
  5. import requests
  6. import pymysql
  7. from bs4 import BeautifulSoup
  8.  
  9. test_url = 'https://www.nihaowua.com/home.html'
  10.  
  11.  
  12. # 数据库连接操作
  13. def connect_wxremit_db():
  14.     return pymysql.connect(host='***.***.***.***',#填自己mysql的地址
  15.                            port=3306,
  16.                            user='***',#mysql帐号
  17.                            password='********',#mysql密码
  18.                            database='word',
  19.                            charset='utf8')
  20.  
  21.  
  22. def download_page(url):
  23.     headers = {
  24.         'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80 Safari/537.36'
  25.     }
  26.     data = requests.get(url, headers=headers).content  # 请求目标网址
  27.     return data
  28.  
  29.  
  30. def parse_html(html):
  31.     result = ""
  32.     soup = BeautifulSoup(html, "html.parser")  # 解析目标网址
  33.     list_soup = soup.find('section').find('div').children  # 找到目标内容
  34.     if list_soup != None:
  35.         for i in list_soup:
  36.             result += i.string
  37.     return result
  38.  
  39.  
  40. def main():
  41.     db = connect_wxremit_db()
  42.     cursor = db.cursor()  # 创建数据库游标
  43.     while True:
  44.         try:
  45.             handle = parse_html(download_page(test_url))  # 得到目标数据
  46.             if handle != None:
  47.                 print(handle)
  48.                 sql = "INSERT INTO chicken(word) VALUES ('%s')" % (handle)  # 数据库插入语句
  49.                 cursor.execute(sql)  # 提交数据库操作
  50.                 db.commit()
  51.         except:
  52.             pass
  53.  
  54.  
  55. if __name__ == '__main__':
  56.     main()
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表