楼主: fantuanxiaot
8881 55

[应用实例] [转载]Python(依赖mysql)爬虫||Perl入门||Perl爬虫动手(抓首页) ||JAVA构造器使用   [推广有奖]

已卖:1596份资源

大师

9%

还不是VIP/贵宾

-

威望
7
论坛币
-234456 个
通用积分
196.1859
学术水平
3783 点
热心指数
3819 点
信用等级
3454 点
经验
150360 点
帖子
7597
精华
32
在线时间
1329 小时
注册时间
2013-2-4
最后登录
2025-3-23

初级学术勋章 初级热心勋章 中级热心勋章 中级学术勋章 初级信用勋章 中级信用勋章 高级热心勋章 高级学术勋章 特级学术勋章 特级热心勋章 高级信用勋章 特级信用勋章

楼主
fantuanxiaot 发表于 2015-2-9 11:28:59 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

1,两个小时学会perl

http://qntm.org/files/perl/perl.html


2,Python整站爬虫(Demo)(依赖Mysql)

本帖隐藏的内容

  1. #!/usr/bin/python
  2. # vim: set fileencoding=utf-8:
  3. import sys
  4. import urllib2
  5. import re
  6. from BeautifulSoup import BeautifulSoup
  7. import ConfigParser
  8. import MySQLdb as mdb

  9. class Db_Connector:
  10.     def __init__(self, config_file_path):
  11.         cf = ConfigParser.ConfigParser()
  12.         cf.read(config_file_path)
  13.         db_host = cf.get("mysql_db", "host")
  14.         db_port = cf.getint("mysql_db", "port")
  15.         db_user = cf.get("mysql_db", "username")
  16.         db_pwd = cf.get("mysql_db", "password")
  17.         db_data=cf.get("mysql_db","db_name")
  18.         try:
  19.             self.con=mdb.connect(db_host,db_user,db_pwd,db_data)
  20.             self.cur=self.con.cursor()
  21.         except:
  22.             print "[*] DB Connect Error"
  23.     def find_all(self,sql_script):
  24.         try:
  25.             self.cur.execute(sql_script)
  26.             return self.cur.fetchall()
  27.         except:
  28.             print "[*] DB FindAll Error"
  29.     def find_item(self,sql_script):
  30.         try:
  31.             self.cur.execute(sql_script)
  32.             return self.cur.fetchone()
  33.         except:
  34.             print "[*] DB FindItem Error"
  35.     def insert_item(self,sql_script):
  36.         try:
  37.             self.cur.execute(sql_script)
  38.             self.con.commit()
  39.             return True
  40.         except Exception, e:
  41.             print '[*] DB Insert Into Error'
  42.     def update_item(self,sql_script):
  43.         try:
  44.             self.cur.execute(sql_script)
  45.             self.con.commit()
  46.             return True
  47.         except Exception, e:
  48.             print "[*] DB Update Error"

  49. class SpriderUrl:
  50.     # 初始化
  51.     def __init__(self,url):
  52.         self.url=url
  53.         self.con=Db_Connector('sprider.ini')

  54. #获得目标url的第一次url清单
  55.     def get_self(self):
  56.         urls=[]
  57.         try:
  58.             body_text=urllib2.urlopen(self.url).read()
  59.         except:
  60.             print "[*] Web Get Error:checking the Url"
  61.             sys.exit(0)
  62.         soup=BeautifulSoup(body_text)
  63.         links=soup.findAll('a')
  64.         for link in links:
  65.             # 获得了目标的url但还需要处理
  66.             _url=link.get('href')
  67.              # 接着对其进行判断处理
  68.              # 先判断它是否是无意义字符开头以及是否为None值
  69.              # 判断URL后缀,不是列表的不抓取
  70.             if re.match('^(javascript|:;|#)',_url) or _url is None or re.match('.(jpg|png|bmp|mp3|wma|wmv|gz|zip|rar|iso|pdf|txt|db)
  71. [/hide][b][color=#8b0000]
  72. [/color][/b][b][size=5][color=#8b0000]3,JAVA[/color][/size][size=5][color=#8b0000]构造器的实际使用[/color][/size][/b][font=华文楷体][size=5][color=#8b0000]主要问题是在复习PYTHON的面对对象,所以看看JAVA找灵感。[/color][/size][/font]
  73. [hide][code]
  74. package basic.day12;

  75. public class User {
  76.   String name;
  77.   String pwd;
  78.   int age;
  79.   
  80.   
  81. public User(String name,String pwd,int age){
  82.     this.name=name;
  83.     this.pwd=pwd;
  84.     this.age=age;
  85.   }
  86. public String toString(){
  87.    return name+":"+age;
  88. }
  89. }
复制代码




3,JAVA构造器的实际使用package basic.day12;
public class User {
  String name;
  String pwd;
  int age;
  
public User(String name,String pwd,int age){
    this.name=name;
    this.pwd=pwd;
    this.age=age;
  }
public String toString(){
   return name+":"+age;
}
}


4,Perl爬虫动手(抓首页)
下面的代码目前只实现了抓取首页,后面会改下,要求抓2级到3级页面
#!/usr/bin/perl
use HTML::LinkExtor;
use LWP::Simple;
sub sparit{
  local($base_url)= shift;
  # 抓取URL
  $parser = HTML::LinkExtor->new(undef,$base_url);
  $parser->parse(get($base_url))->eof;
  @links = $parser->links;
  foreach $linkarray (@links){
     my @element = @$linkarray;
     my $elt_type = shift @element;
     while( @element){
       my ($attr_name , $attr_value) = splice(@element, 0, 2);
       $seen{$attr_value}++;
     }
  }
  # 排序/去除非同站URL
  for (sort keys %seen){
       if($_=~m#^$base_url#){
          push(@tmp_url,"$_\n");
       }
  }
  # 返回匹配的URL
  return @tmp_url;
}


5,Python字符串处理例子
#!/usr/bin/python
#coding=gb2312
line='aa,bb,cc,dd';
print line.split(',');
w='start';
s='wic\n';
print w.upper();
print w.isalpha();
print s.rstrip();
print '%s,caonima,de,%s' %('wo','b');
print '{0},caonima,de,{1}'.format('cao', 'nidaye');


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:python MySQL Perl Java Erl python import mysql JAVA

已有 2 人评分经验 学术水平 热心指数 信用等级 收起 理由
niuniuyiwan + 60 精彩帖子
zbin7451f + 100 + 5 + 5 + 5 对论坛有贡献

总评分: 经验 + 160  学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

本帖被以下文库推荐

沙发
nadjainhell 发表于 2015-2-9 11:35:55

回帖奖励 +6

感谢分享~~~~~~~~~~~~~~~~

藤椅
Crsky7 发表于 2015-2-9 20:24:01

回帖奖励 +6

[转载]Python(依赖mysql)爬虫||Perl入门||Perl爬虫动手(抓首页) ||JAVA构造器使用
已有 1 人评分经验 收起 理由
fantuanxiaot + 8 精彩帖子

总评分: 经验 + 8   查看全部评分

板凳
feders 发表于 2015-2-14 17:40:13

回帖奖励 +6

有点想学python

报纸
愤怒的老鸟 发表于 2015-2-15 11:05:02

回帖奖励 +6

学习学习

地板
adxl888 发表于 2015-2-15 15:24:08

回帖奖励 +6

1,两个小时学会perl          真的假的

7
依然似水流年 发表于 2015-2-16 21:55:36

回帖奖励 +6

谢谢楼主!谢谢分享!

8
woaiwangqiao 发表于 2015-2-19 16:49:05

回帖奖励 +6

支持饭团君

9
yiweidon 发表于 2015-2-19 20:56:49

回帖奖励 +6

这个要支持
已有 1 人评分论坛币 收起 理由
fantuanxiaot + 5 精彩帖子

总评分: 论坛币 + 5   查看全部评分

10
Freddy0110 发表于 2015-2-21 00:57:55

回帖奖励 +6

谢谢分享

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-9 07:47