Python爬虫脚本,利用find爬取普通网页(源码)

BeautifulSoup+ Find + Oracle爬取

不想存库的话直接用CSV做成表格数据也是可以的,方便了上班族

# 全国城市
import requests
from bs4 import BeautifulSoup
import cx_Oracle
import os
import uuid 
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}  # 爬虫[Requests设置请求头Headers],伪造浏览器
# 核心爬取代码 
conn = cx_Oracle.connect('username/password@127.0.0.1:1521/orcl')
print("数据库连接上了")

cursor_oracle = conn.cursor()
sql = "select PARAKEY from BASEDATA WHERE PARACODE=" + "'vagetable'"
cr = conn.cursor()
cr.execute(sql)  # 执行sql语句
fenlei = []
rs = cr.fetchall()  # 一次返回所有结果集

for (row,) in rs: 
    # 去掉括号,放入数组
    fenlei.append(row)
    
print(fenlei)
num = 0
url = 'http://nong.gold600.com/cx?pz=';
# 山东URL
shanUrl = []
# 全国URL
allUrl = []
for k in fenlei:
# 这个是在for循环外面的,就是将列表的元素之间用&符号连接起来
    aa = url + k + '&c=shandong'
    cc = url + k
    
    shanUrl.append(aa)
    allUrl.append(cc)
    
    for i in range(2, 11):
        bb = aa + '&page=' + str(i)
        dd = cc + '&page=' + str(i)
        shanUrl.append(bb)
        allUrl.append(dd)
        
# 循环全国打印url
for url in allUrl:
    print(url)
    response = requests.get(url, headers=headers)  # 访问url
    soup = BeautifulSoup(response.text, 'html.parser')  # 获取网页源代码
    # 获取数据
    tr = soup.find('table', class_='bx').find_all('tr')  # .find定位到所需数据位置  .find_all查找所有的tr(表格)
    # 去除标签栏
    for j in tr[1:]:  # tr2[1:]遍历第1列到最后一列,表头为第0列
        TTID = str(uuid.uuid1())
        td = j.find_all('td')  # td表格
        Name = td[0].get_text().strip()  # 遍历名称
        Price = td[1].get_text().strip()  # 遍历价格
        AQI = td[2].get_text().strip()  # 遍历单位
        Market = td[3].get_text().strip()  # 遍历批发市场
        Timme = td[4].get_text().strip()  # 遍历时间
        Code = '0'
        sql = "insert into PRODUCTPRICE(ID,NAME,PRICE,UNIT,AREA,INDATE,CODE) values ('" + TTID + "','" + Name + "','" + Price + "','" + AQI + "','" + Market + "','" + Timme + "','" + Code + "')"
        cursor_oracle.execute(sql)
        num = num + 1
        if(num > 100):
            conn.commit()
            num = 0
# 循环山东打印url
for url in shanUrl:
    print(url)
    response = requests.get(url, headers=headers)  # 访问url
    soup = BeautifulSoup(response.text, 'html.parser')  # 获取网页源代码
    # 获取数据
    tr = soup.find('table', class_='bx').find_all('tr')  # .find定位到所需数据位置  .find_all查找所有的tr(表格)
    # 去除标签栏
    for j in tr[1:]:  # tr2[1:]遍历第1列到最后一列,表头为第0列
        TTID = str(uuid.uuid1())
        td = j.find_all('td')  # td表格 
        Name = td[0].get_text().strip()  # 遍历名称
        Price = td[1].get_text().strip()  # 遍历价格
        AQI = td[2].get_text().strip()  # 遍历单位
        Market = td[3].get_text().strip()  # 遍历批发市场
        Timme = td[4].get_text().strip()  # 遍历时间
        Code = '1'
        sql = "insert into PRODUCTPRICE(ID,NAME,PRICE,UNIT,AREA,INDATE,CODE) values ('" + TTID + "','" + Name + "','" + Price + "','" + AQI + "','" + Market + "','" + Timme + "','" + Code + "')"
        cursor_oracle.execute(sql)
        num = num + 1
        if(num > 100):
            conn.commit()
            num = 0
conn.commit()
cursor_oracle.close()
conn.close()

Python爬虫是一种利用Python编程语言编写的小工具,通过解析网页结构,自动化地抓取网络上公开的数据,比如电影、电视剧的信息和链接。对于喜欢追剧观影的人来说,学习一些基础的爬虫技术可以帮助你在各大影视平台上快速找到想看的内容,而无需直接访问每个网站。 Python爬虫通常涉及以下几个步骤: 1. **选择库**:如requests用于发送HTTP请求获取网页内容,BeautifulSoup或Scrapy等用于解析HTML文档提取数据。 2. **分析目标页面**:了解你想抓取信息的网页结构,找出数据所在的HTML标签。 3. **编写爬虫脚本**:编写Python代码,设置URL、提取规则,并保存或处理数据。 4. **反爬机制应对**:注意遵守网站的robots.txt规定,避免过于频繁的请求导致封禁。 **示例代码片段** (注意:这仅是一个简单的示例,实际操作需考虑网站的反爬策略和动态加载): ```python import requests from bs4 import BeautifulSoup def get_movie_info(url): response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') # 假设电影标题在<h1>标签下,演员在<p>标签下 movie_title = soup.h1.text actors = [actor.text for actor in soup.find_all('p', class_='actor')] return movie_title, actors url = "http://example.com/movie_page" # 替换为你想要爬取的电影页URL movie_title, actors = get_movie_info(url) print(f"电影标题:{movie_title}") print("演员列表:", actors) # 将数据存储到文件或数据库,或按照需要进一步处理 ``` **相关问题--:** 1. 爬虫遇到动态加载内容怎么办? 2. 如何处理Python爬虫被目标网站封禁的问题? 3. 使用Python爬虫需要注意哪些法律和道德问题?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值