今天爬取的**是
今天遇到的兩個難點是:
一、通過xpath爬取img的src的屬性結果是另乙個的連線
二、xpath爬取下來的內容存進mysql遇到的問題
一邊上** 一邊說問題
import requests
import mysql.connector
from lxml import etree
import random
from datetime import datetime,timedelta
# 連線mysql
db = mysql.connector.connect(
user=
"root"
, password=
"root"
, host=
"127.0.0.1"
, port=
3306
, database=
"myself"
)cursor = db.cursor(dictionary=
true
)#/index/index/0/_/1/60?wd=
url =
""proxy =
headers =
response = requests.get(url=url, headers=headers, proxies=proxy)
.content.decode(
"utf-8"
)html = etree.html(response)
li_tr = html.xpath(
'//ul[@class="tab_con"]/div[@class="clear"]/li'
)#這個函式判斷獲取的內容是否為空 並把有,的字元去掉
defisnull
(test_list):if
len(test_list)
>0:
return test_list[0]
[:-2
].replace(
",","")
else
:return random.randint(
100,
300)
for i in li_tr:
#這裡注意了通過開發者工具看到是src但是實際的屬性是data-src
#如果遇到看到是這樣的 獲取卻另外的資料可以通過
#開發者的network 的response 裡面看
goods_img=i.xpath(
'.//img/@data-src')if
len(goods_img)
>0:
goods_img=goods_img[0]
else
:continue
goods_name = i.xpath(
'./div[@class="botm_text"]/a/text()')[
0]goods_jf = isnull(i.xpath(
'.//b/text()'))
sql=
"insert into index_goods (goods_name,goods_image,goods_jifen,) values (%s,%s,%s)"
#如果通過xpath獲取的內容存進mysql時要進行encode('utf-8'),不然會報型別錯誤
val=
(goods_name.encode(
'utf-8'
),goods_img.encode(
'utf-8'),
str(numbers)
,int
(goods_jf)
,addtime,outtime)
cursor.execute(sql,val)
db.commit(
)print
(goods_img,goods_name,goods_jf)
這次爬取遇到就兩個問題要注意一下! python爬取資料庫資訊
一 今日學習內容 資料庫儲存爬取的資訊 mysql 爬取到的資料為了更好地進行分析利用,而之前將爬取得資料存放在txt檔案中後期處理起來會比較麻煩,很不方便,如果資料量比較大的情況下,查詢更加麻煩,所以我們通常會把爬取的資料儲存到資料庫中便於後期分析利用。這裡,資料庫選擇mysql,採用pymysq...
scrapy 爬取資料儲存到資料庫
items.py coding utf 8 define here the models for your scraped items see documentation in import scrapy class mkwitem scrapy.item link scrapy.field typ...
jedis取存 資料庫查到的物件 資料庫 索引相關
在資料庫中,索引的含義與日常意義上的 索引 一詞並無多大區別 想想小時候查字典 它是用於提高資料庫表資料訪問速度的資料庫物件。總而言之,索引是乙個排序的列表,在這個列表中儲存著索引的值和包含這個值的資料所在行的實體地址,在資料十分龐大的時候,索引可以大大加快查詢的速度,這是因為使用索引後可以不用掃瞄...