python 培训之爬虫

1. 输入文件为

fufang_list.txt

yaofang_a    aaiwan    阿艾丸
yaofang_a    aaiwulingsan    阿艾五苓散
yaofang_a    acaitang    阿菜汤
yaofang_a    afurongjiu    阿芙蓉酒
yaofang_a    aqietuoyao    阿伽陀药
yaofang_a    aweichubisan    阿魏搐鼻散
yaofang_a    aweigao    阿魏膏
yaofang_a    aweigaoyao    阿魏膏药
yaofang_a    aweihuapigao    阿魏化痞膏
yaofang_a    aweihuapisan    阿魏化痞散
yaofang_a    aweijikuaiwan    阿魏积块丸
yaofang_a    aweileiwansan    阿魏雷丸散
yaofang_a    aweilizhongwan    阿魏理中丸
yaofang_a    aweiliangjiangwan    阿魏良姜丸
yaofang_a    aweiruanjiansan    阿魏软坚散
yaofang_a    aweisan    阿魏散
yaofang_a    aweishexiangsan    阿魏麝香散
yaofang_a    aweitongjingwan    阿魏通经丸
yaofang_a    aweiwan    阿魏丸
yaofang_a    aweiwanlinggao    阿魏万灵膏

2. 爬虫脚本

get_tcmdata.py

#!/usr/bin/python
#coding:utf8
from __future__ import print_function
import click
import urllib2
import re
from bs4 import BeautifulSoup
import sys
reload(sys)
import socket
sys.setdefaultencoding("utf8")
socket.setdefaulttimeout(20)

base_url = "http://www.zysj.com.cn/zhongyaofang/{}.html"
headers = {‘User-Agent‘:‘Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6‘}

@click.command()
@click.argument(‘input1‘)
@click.option("--pos",‘-pos‘)
def query_tcm_info(input1,pos):
    """
    the script will ignore the previous pos lines
    """
    zhongyaofang_list = open(input1)
    pos = int(pos)
    num = 0
    if pos:
        for i in range(0,pos):
            zhongyaofang_list.readline()
    num = num + pos
    for zhongyaofang_info in zhongyaofang_list:
        num = num +1
        zhongyaofang_info_list = zhongyaofang_info.strip("\n").split("\t")
        url_id = "/".join(zhongyaofang_info_list[0:2])
        file_out = "_".join(zhongyaofang_info_list[0:2])
        file_out_name = "_".join([file_out,str(num)])
        output_file = open(file_out_name+".txt","w")
        query_url = base_url.format(url_id)
        req = urllib2.Request(query_url,headers = headers)
        content = urllib2.urlopen(req,timeout=20).read()
        soup = BeautifulSoup(content)
        words = soup.getText()
        output_file.write(words)

if __name__ == "__main__":
    query_tcm_info()

3. 运行脚本命令

python  get_tcmdata.py fufang_list.txt --pos 0

4. 简单百度爬虫

#!/usr/bin/python
#coding:utf8
from __future__ import print_function
import sys
reload(sys)
sys.setdefaultencoding("utf8")
import urllib2

request = urllib2.Request(url)
request.add_data(‘a‘,"1")
request.add_heder(‘User-Agent‘,"Mozilla/5.0")
response = urllib2.urlopen(request)
cont = response.read()
print(cont)
时间: 2024-08-06 18:23:09

python 培训之爬虫的相关文章

python培训入门之python爬虫

老男孩教育python培训教你用python爬虫开发技术 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程序或者蠕虫.下面老男孩python培训教您怎么利用好爬虫.         1.什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.想抓取

智普教育Python培训之Python开发视频教程网络爬虫实战项目

网络爬虫项目实训:看我如何下载韩寒博客文章Python视频 01.mp4 网络爬虫项目实训:看我如何下载韩寒博客文章Python视频 02.mp4 网络爬虫项目实训:看我如何下载韩寒博客文章Python视频 03.mp4 智普教育Python培训 01 Windows下Python开发环境的安装与基本使用.wmv 智普教育Python培训 02 python程序基本架构.mp4 智普教育Python培训 03 Python基本输入输出语句.mp4 智普教育Python培训 04 Python变量

测试开发Python培训:抓取新浪微博抓取数据-技术篇

测试开发Python培训:抓取新浪微博抓取数据-技术篇 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的selenium的课程中,我们在培训的课程里讲python的语言,也是通过项目实战的方式进行讲解,前期分享了个新浪微博的登陆功能,这次在通过抓取新浪微博数据进一步讲解脚本.(大家对课程感兴趣,请加qq:564202718) 微博有发布微博功能,微博发布后需要验证内容,那么如何验证微博发布数据的正确性,首先要

[踩坑]python实现并行爬虫

问题背景:指定爬虫depth.线程数, python实现并行爬虫   思路:    单线程 实现爬虫类Fetcher                 多线程 threading.Thread去调Fetcher  方法:Fetcher 中,用urllib.urlopen打开指定url,读取信息: response = urllib.urlopen(self.url) content = response.read() 但是这样有问题, 比如对于www.sina.com来说,读出来的content是

Windows 环境下运用Python制作网络爬虫

import webbrowser as web import time import os i = 0 MAXNUM = 1 while i <= MAXNUM: web.open_new_tab('要刷的网络地址') os.system('taskkill /F /IM 浏览器文件名(chrome.exe)') i += 1 else: print 'happly day!' 代码和简单只要一个第三方的函数和调用系统的文件就OK了.记住给要刷的次数定值,不然电脑就不好受了! Windows

dota玩家与英雄契合度的计算器,python语言scrapy爬虫的使用

首发:个人博客,更新&纠错&回复 演示地址在这里,代码在这里. 一个dota玩家与英雄契合度的计算器(查看效果),包括两部分代码: 1.python的scrapy爬虫,总体思路是page->model->result,从网页中提取数据,组成有意义的数据结构,再拿这数据结构做点什么. 在这个项目中,爬虫的用处是从游久网dota数据库上抓取dota英雄和物品的数据和照片存到本地磁盘,数据存为json格式,方便在网页应用中直接使用. 2.网页应用,使用dota英雄数据.自己编写的小伙

python实现图片爬虫

#encoding:utf-8 import sys reload(sys) sys.setdefaultencoding('utf8') from sgmllib import SGMLParser import re import urllib class URLLister(SGMLParser): def start_a(self, attrs): url = [v for k, v in attrs if k=='href'] if url : urll = url[0] else :

Python Scrapy 自动爬虫注意细节

一.首次爬取模拟浏览器 在爬虫文件中,添加start_request函数.如: def start_requests(self): ua = {"User-Agent": 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.2050.400 QQBrowser/9.5.10169.400'} yie

Python 开发轻量级爬虫02

Python 开发轻量级爬虫 (imooc总结02--爬虫简介) 爬虫简介 首先爬虫是什么?它是一段自动抓取互联网信息的程序. 什么意思呢? 互联网由各种各样的的网页组成,每一个网页都有对应的url,而url页面上又有很多指向其它页面的url,这些url之间相互指向的关系, 就形成了一个网状,这就是互联网. 正常情况下,我们使用人工的方式,从互联网上获取我们需要的感兴趣的信息.那有没有一种方法,我们设定了一个主题,设定一个感兴趣的目标, 可以自动从互联网上获取我们所需要的数据呢?这就是爬虫. 爬