目标地址:xxxx

技术选型:python

软件包管理工具:pipenv

编辑器:jupyter

分析目标地址:

gplId表示项目ID,可变参数

结果收集方式:

数据库

代码实现

导入相关模块

from urllib.parse import urlencode

from bs4 import  BeautifulSoup

import pandas as pd

import requests

import os,sys

# 网页提取函数

def get_one_page(i):

try:

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36'

}

paras = {

'a': 'x',

'b': 'x',

'c': 'x',

'd': 'x',

'e': 'x'

}

url = 'xx?' + urlencode(paras)

response = requests.get(url,headers = headers)

if response.status_code == 200:

response.encoding='utf-8'

return response.text

return None

except RequestException:

print('爬取失败')

# beatutiful soup解析然后提取表格

def parse_one_page(html):

soup = BeautifulSoup(html)

content = soup.select('.ttable')[0]

tbl = pd.read_html(content.prettify(),header = 1)[0]

tbl.rename(columns = {'序号':'serial_number',

'xx':'option',

'xx':'fanwei',

'xx':'company_name',

'xx':'shigong_date',

'xx':'order_no',

'xx':'miaomu_name',

'xx':'type',

'xx':'spec',

'xx':'count',

xx':'dead_count',

'xx':'zhongzhi_midu',

'xx':'mianji',

'xx':'unit',

'xx':'danjia',

'xx':'xiaoji',

'xx':'zhongzhididian',

'xx':'chuhuonongchang',

'xx':'remark',

'xx':'image_count',

'xx':'image'

},inplace = True)

del tbl['option']

del tbl['image_count']

del tbl['image']

return tbl

# 创建表结构

import pymysql

# 创建表结构

def generate_mysql():

conn = pymysql.connect(

host='xxxx',

user='root',

password='xxxx',

port=3307,

charset = 'utf8',

db = 'miao_mu_data')

cursor = conn.cursor()

sql = 'CREATE TABLE IF NOT EXISTS miaomu (' \

'serial_number INT(20) NOT NULL AUTO_INCREMENT,' \

'fanwei varchar(50) ,' \

'company_name VARCHAR(50) ,' \

'shigong_date varchar(50),' \

'order_no varchar(50),' \

'miaomu_name varchar(50),' \

'type varchar(50),' \

'spec varchar(50),' \

'count varchar(50),' \

'dead_count varchar(50),' \

'zhongzhi_midu varchar(50),' \

'mianji varchar(50),' \

'unit varchar(50),' \

'danjia varchar(50),' \

'xiaoji varchar(50),' \

'zhongzhididian varchar(50),' \

'chuhuonongchang varchar(50),' \

'remark varchar(50),' \

'PRIMARY KEY (serial_number))'

cursor.execute(sql)

conn.close()

# 存储到数据库

from sqlalchemy import create_engine

# 存储到数据库

def write_to_sql(tbl, db = 'miao_mu_data'):

engine = create_engine('mysql+pymysql://root:密码@ip:3307/{0}?charset=utf8'.format(db))

try:

tbl.to_sql('miaomu',con = engine,if_exists='append',index=False)

except Exception as e:

print(e)

# 主函数

import time

# 主函数

def main(page):

start_time = time.time()

for i in range(1,page):

print(i)

html = get_one_page(page)

df = parse_one_page(html)

if not df.empty:

write_to_sql(df)

# 间隔执行

time.sleep(3)

endtime = time.time()-start_time

print('程序运行了%.2f秒' %endtime)

if __name__ == '__main__':

main(100000)

# 生成表结构

#     generate_mysql()

转载于:https://blog.51cto.com/suyanzhu/2394760

通过python爬取数据相关推荐

  1. python爬取数据时报错:`aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host sea

    python爬取数据时报错:aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host sear ...

  2. Python:爬取数据出现response.status_code为403解决方法

    目录 前言 1. 原理 2. 代码 前言 出现403的返回结果 主要是有些服务器为了防止访问量过大,承受服务器的压力,或者是拒绝你的访问.服务器接收到这个信息,理应返回了这个403的信息 在前一块的代 ...

  3. Python爬取数据存储到本地文本文件

    前面说过Python爬取的数据可以存储到文件.关系型数据库.非关系型数据库.前面两篇文章没看的,可快速戳这里查看!https://mp.weixin.qq.com/s/A-qry4r3ymuCLXLB ...

  4. Python爬取数据:翻页操作

    Python爬取视频在上一章已经实现,如果爬取数据的时候发现不止一页数据,而是很多页数据的时候,我们就需要爬虫自行翻页操作继续获取另一页的数据.那么如何实现的翻页操作是本章主要描述内容. 该文章爬取数 ...

  5. 如何用python爬取数据_如何使用python爬取知乎数据并做简单分析

    原标题:如何使用python爬取知乎数据并做简单分析 一.使用的技术栈: 爬虫:python27 +requests+json+bs4+time 分析工具: ELK套件 开发工具:pycharm 数据 ...

  6. python 爬取数据还要下载scrapy吗_python网络爬虫之Scrapy

    本文分享的大体框架包含以下三部分 (1)首先介绍html网页,用来解析html网页的工具xpath (2)介绍python中能够进行网络爬虫的库(requests,lxml,scrapy等) (3)从 ...

  7. python爬取数据热点词生成词云

    这是当时在中国mooc学 用python玩转数据 时,写的一个小demo. 程序实现步骤 1.从某一网站爬取数据,比如我是在豆瓣爬取的书评 利用Requests库的get()爬取网页 使用Beatif ...

  8. Python爬取数据并写入MySQL

    关于爬虫爬取数据并存入MySQL数据库(以东方财富网上的股票数据为例,网页:深南电A(000037)资金流向 _ 数据中心 _ 东方财富网) 第一步,创建数据库中的数据表 import request ...

  9. python爬取数据保存为txt格式

    #encoding:'utf-8' import urllib.request from bs4 import BeautifulSoup import os import time #找到网址 de ...

  10. python爬取数据保存为csv时生成编号_将爬取到到数据以CSV格式存储

    CSV文件存储 CSV,全称为Comma-Separated Values,中文可以叫做逗号分隔值或字符分隔值,其文件以纯文本形式存储表格数据.该文件是一个字符序列,可以由任意数目的记录组成,记录间以 ...

最新文章

  1. 利用 Python 打造一个语音合成系统
  2. 再爆安全漏洞,这次轮到Jackson了,竟由阿里云上报
  3. 继承SectionIndexer,实现联系人侧边栏
  4. 动态链接到MFC的DLL(转)
  5. dcf是ea211发动机吗_大众有的车怎么把ea211换成dcf了?
  6. solaris 源代码
  7. python渲染html 库_在Python中使用CasperJS获取JS渲染生成的HTML内容的教程
  8. 谈谈苹果应用内支付(IAP)的坑
  9. 最小的语言符号是A词B语素C音素D义素,[转载]语言学概论试题 答案
  10. 写论文的第三天 自建zookeeper集群
  11. 在HTML中取得请求中的参数
  12. 用Python强制子类重写父类,如此简单就能做到
  13. Flash 用FLASH遮罩效果做图片切换效果
  14. java oracle数据备份_Java实现Oracle数据库备份
  15. 手机变速齿轮_变速齿轮手机版下载|变速齿轮游戏加速器官方最新版v1.2下载 _当游网...
  16. 银行会计学3(特点、核算的前提假设、对象和标准)
  17. kail如何进入root_Kali初次使用如何获得root权限
  18. 公司企业邮箱怎么登录?这些安全登录邮箱的方法你要知道
  19. 解决C#读取文本文件乱码
  20. H5,Audio音乐播放器(移动版)

热门文章

  1. 支持向量机的基本原理
  2. 5.2.1.开启驱动开发之路
  3. Sublime Text 3总是出现“1 missing dependency was just installed.”
  4. IP地址子网掩码位数换算方法及解释子网掩码的作用
  5. Linux vgchange 命令
  6. NIO_通道之间传输数据
  7. centos下安装JAVA开发工具(1)------JDK
  8. git-osc自己定义控件之:CircleImageView
  9. Java Programming Test Question 2
  10. MySQL主从同步相关-主从多久的延迟?